Ssh Jumphost

Aus xinux.net
Version vom 21. Februar 2023, 16:05 Uhr von Thomas.will (Diskussion | Beiträge) (→‎ProxyJump-Beispiel)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

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

Der Host ns Eintrag ist der Zielhost
Hostname die IP
User xinux der Login Name auf dem Ziel
xinux@192.168.6.100 - Der Host über den wir springen
  • cat ~/.ssh/config
 Host ns
 Hostname 10.88.100.21
 User xinux
 ProxyJump xinux@192.168.6.100

Verwendungszweck

  • ssh ns

Wenn sich die Benutzernamen auf den Computern unterscheiden, geben Sie sie durch Ändern der entsprechenden ProxyJump-Zeile an:

Ändern Sie den Korrespondenten ProxyCommand

~/.ssh/config
ProxyJump otheruser@behindalpha

Es funktioniert auch mit dem Befehl scp

  • scp Dateiname hinteralphabeta:~/
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

Diesen Text hinzufügen

~/.ssh/config
### Erster Jumphost. Direkt erreichbar
Host alphajump
  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 behindalphabeta
  Hostname behindalphabeta.example.org
  ProxyJump betajump

Quellen