Ssh Jumphost

Aus Xinux Wiki
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

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:

Ändern Sie den Korrespondenten ProxyCommand

~/.ssh/config
ProxyJump otheruser@behindalpha
<pre>
=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=
<pre>
~/.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