Ssh Jumphost
SSH-Jump-Host
- Eine Alternative zum SSH-Tunneling für den Zugriff auf interne Maschinen über ein Gateway ist die Verwendung von Jump-Hosts.
- Die Idee ist, ProxyCommand zu verwenden, um den ssh-Befehl auf dem Remote-Host automatisch auszuführen*
- Damit wurd zum nächsten Host zu gesprungen und den gesamten Datenverkehr weiterzuleiten.
Voraussetzungen
- SSH-Zugriff auf den Gateway-Rechner und den internen.
- Auf dem Gateway-Computer ist Netcat installiert.
Dynamische Jumphost-Liste
- Sie können die Option -J verwenden, um durch einen Host zu springen:
- ssh -J host1 host2
Wenn sich Benutzernamen oder Ports auf Maschinen unterscheiden, geben Sie sie an
- ssh -J user1@host1:port1 user2@host2 -p port2
Mehrere Sprünge
Die gleiche Syntax kann verwendet werden, um Sprünge über mehrere Maschinen zu machen:
- ssh -J user1@host1:port1,user2@host2:port2 user3@host3
Statische Jumphost-Liste
- Statische Jumphost-Liste bedeutet, dass Sie den oder die Jumphosts kennen, die Sie benötigen, um einen Host zu erreichen.
- Daher können Sie in der Datei ~/.ssh/config ein statisches Jumphost-Routing erstellen.
- Der Vorteil im Vergleich zur dynamischen Jumphost-Option besteht darin, dass Sie die .ssh-Konfiguration auf Jumphosts zwischen Ihrem Computer und allen anderen Jumphosts zwischen Ihnen und dem endgültigen Host, zu dem Sie springen möchten, nicht bereitstellen müssen.
ProxyJump-Beispiel
DATEI ~/.ssh/config ### Erster Jumphost. Direkt erreichbar Host betajump Hostname jumphost1.example.org ### Host, zu dem über jumphost1.example.org gesprungen werden soll Host behindbeta Hostname behindbeta.example.org ProxyJump betajump
Verwendungszweck
Üssh behindalpha Wenn sich die Benutzernamen auf den Computern unterscheiden, geben Sie sie durch Ändern der entsprechenden ProxyJump-Zeile an:
DATEI ~/.ssh/config Ändern Sie den Korrespondenten ProxyCommand ProxyJump otheruser@behindalpha Es funktioniert auch mit dem Befehl scp:
Benutzer $scp Dateiname hinteralphabeta:~/
Notiz
Der Doppelpunkt und der Pfad am Ende werden benötigt, damit scp es als entfernt erkennt. Mehrere Sprünge Die gleiche Syntax kann verwendet werden, um Sprünge über mehrere Maschinen zu machen:
DATEI ~/.ssh/configDiesen Text hinzufügen
- Erster Jumphost. Direkt erreichbar
Host-Alphasprung
Hostname jumphost1.example.org
- Zweiter Jumphost. Nur erreichbar über jumphost1.example.org
Host-Betajump
Hostname jumphost2.example.org ProxyJump alphajump
- Host nur über Alphajump und Betajump erreichbar
Host hinteralphabeta
Hostname hinteralphabeta.example.org ProxyJump betajump