Mein Netzwerklayout sieht ungefähr so aus:
Jetzt hat Alice Zugriff auf das SSH-Gateway (von jetzt an nur noch Gateway) mit:
ssh [email protected]
und die Datei mit den autorisierten Schlüsseln auf dem Gateway sieht so aus
#/home/Alice/.ssh/authorized_keys
command="ssh -t alice@web" ssh-rsa ABCD...E== alice@somehost
Wenn Alice also versucht, mit ihrem privaten Schlüssel eine Verbindung zum Gateway herzustellen, wird sie tatsächlich mit dem Webserver verbunden (der Gateway-PC kann mit einem kennwortlosen privaten Schlüssel eine Verbindung zum Webserver herstellen, sodass die Verbindung transparent bleibt).
Die Frage
Wie kann ich das so einstellen, dass Alice auch Dinge auf dem Webserver scpen kann?
Ich weiß, dies stellt eine separate Verbindung her, aber gibt es eine Möglichkeit, wie dies als normales SSH funktioniert, so dass sogar so etwas
-R12345:localhost:22
funktionieren würde?
Ich hatte genau das gleiche Problem wie dieses, aber ich brachte es zum Laufen, ohne alles grundlegend zu verändern.
Alles, was ich getan habe, war, $ SSH_ORIGINAL_COMMAND zu den berechtigten_Gateway-Schlüsseln hinzuzufügen, um irgendetwas in der Kette zum endgültigen Server durchzuleiten.
Also das:
Wird:
Das -q wird verwendet, um die Verbindungsabbruchnachricht vom Endpunktcomputer zu unterdrücken, damit sie nicht in der lokalen Ausgabe endet, wenn die Umleitung lokal verwendet wird.
Sie können scp dann folgendermaßen verwenden:
Dies hat den zusätzlichen Vorteil, dass Benutzer Befehle über Befehle an den Endpunktserver übergeben und das Ergebnis in ihrer lokalen Sitzung zurückerhalten können, um sie in eine Datei umzuleiten oder an ein anderes Programm weiterzuleiten.
Zum Beispiel:
Dies funktioniert, weil sshd anscheinend die Umgebungsvariable $ SSH_ORIGINAL_COMMAND mit dem vom ssh-Client angegebenen Befehl auffüllt. Ich bin mir jedoch nicht sicher, warum dies auf wundersame Weise ermöglicht, dass scp sowohl zum Endpoint-Rechner als auch zu den Befehlen durchgeht.
quelle
Leider würde die Portweiterleitung nicht helfen, Dateien direkt von Alices Workstation auf den Webserver zu kopieren
scp
. In diesem SO-Post habe ich erklärt, warum ssh (und scp, da dieselben Authentifizierungsmechanismen verwendet werden) für Verbindungen, die über ssh an einen Port weitergeleitet werden, nicht funktionieren.Sie können einen VPN-Server auf einem Computer einrichten, der jetzt als SSH-Gateway fungiert, eine Verbindung zu diesem herstellen und dann direkt auf einen Computer hinter der Firewall zugreifen.
quelle