Ein Jump-Host (auch als Jump-Server bezeichnet) ist ein Zwischenhost oder ein SSH-Gateway zu einem Remote-Netzwerk, über das eine Verbindung zu einem anderen Host in einer anderen Sicherheitszone hergestellt werden kann, z. B. einer demilitarisierten Zone (DMZ). Es überbrückt zwei unterschiedliche Sicherheitszonen und bietet kontrollierten Zugang zwischen ihnen.
Ein Jump-Host sollte in hohem Maße gesichert und überwacht werden, insbesondere wenn er ein privates Netzwerk und eine DMZ mit Servern umfasst, die Dienste für Benutzer im Internet bereitstellen.
Ein klassisches Szenario ist die Verbindung von Ihrem Desktop oder Laptop aus dem internen Netzwerk Ihres Unternehmens, das mit Firewalls hochsicher ist, zu einer DMZ. Um einen Server in einer DMZ einfach zu verwalten, können Sie über einen Jump Host darauf zugreifen.
In diesem Artikel zeigen wir Ihnen, wie Sie über einen Jump-Host auf einen Remote-Linux-Server zugreifen und die erforderlichen Einstellungen in Ihren SSH-Client-Konfigurationen pro Benutzer konfigurieren.
Betrachten Sie das folgende Szenario.
Im obigen Szenario möchten Sie eine Verbindung zu HOST 2 herstellen, müssen jedoch aufgrund von Firewalling-, Routing- und Zugriffsrechten HOST 1 durchlaufen. Es gibt eine Reihe von triftigen Gründen, warum Jumphosts benötigt werden..
Dynamische Jumphost-Liste
Die einfachste Möglichkeit, über einen Jump-Host eine Verbindung zu einem Zielserver herzustellen, besteht darin, das Flag -J
in der Befehlszeile zu verwenden. Dadurch wird ssh angewiesen, eine Verbindung zum Jump-Host herzustellen und von dort aus eine TCP-Weiterleitung zum Zielserver herzustellen (stellen Sie sicher, dass Sie sich ohne Passwort zwischen den Computern anmelden).
$ ssh -J host1 host2
Wenn sich die Benutzernamen oder Ports auf Computern unterscheiden, geben Sie sie wie gezeigt am Terminal an.
$ ssh -J username@host1:port username@host2:port
Liste mehrerer Jumphosts
Die gleiche Syntax kann verwendet werden, um Sprünge über mehrere Server durchzuführen.
$ ssh -J username@host1:port,username@host2:port username@host3:port
Statische Jumphost-Liste
Statische Jumphost-Liste bedeutet, dass Sie die Jumphost oder Jumphosts kennen, die Sie zum Anschließen einer Maschine benötigen. Daher müssen Sie den folgenden statischen Jumphost ‚routing‘ in der Datei ~/.ssh/config
hinzufügen und die Host-Aliase wie gezeigt angeben.
### First jumphost. Directly reachableHost vps1 HostName vps1.example.org### Host to jump to via jumphost1.example.orgHost contabo HostName contabo.example.org ProxyJump contabo
Versuchen Sie nun, sich wie gezeigt über einen Jump-Host mit einem Zielserver zu verbinden.
$ ssh -J vps1 contabo
Die zweite Methode besteht darin, die Option ProxyCommand zu verwenden, um die Jumphost-Konfiguration wie gezeigt in Ihre Datei ~.ssh/config
oder $HOME/.ssh/config
einzufügen.
In diesem Beispiel ist der Zielhost contabo und der Jumphost vps1.
Host vps1HostName vps1.example.orgIdentityFile ~/.ssh/vps1.pemUser ec2-userHost contaboHostName contabo.example.orgIdentityFile ~/.ssh/contabovpsPort 22User adminProxy Command ssh -q -W %h:%p vps1
Wobei der Befehl Proxy Command ssh -q -W %h:%p vps1
bedeutet Führen Sie ssh im stillen Modus (mit -q
) und im stdio-Weiterleitungsmodus (mit -W
) aus und leiten Sie die Verbindung über einen Zwischenhost (vps1) um.
Versuchen Sie dann, wie gezeigt auf Ihren Zielhost zuzugreifen.
$ ssh contabo
Der obige Befehl öffnet zuerst eine SSH-Verbindung zu vps1 im Hintergrund, die durch den Proxybefehl bewirkt wird, und startet danach die SSH-Sitzung zum Zielserver contabo.
Weitere Informationen finden Sie auf der ssh-Manpage oder unter: OpenSSH/Cookbxook/Proxies and Jump Hosts.
Das ist alles für jetzt! In diesem Artikel haben wir gezeigt, wie Sie über einen Jump-Host auf einen Remote-Server zugreifen können. Verwenden Sie das Feedback-Formular unten, um Fragen zu stellen oder Ihre Gedanken mit uns zu teilen.