Eine ssh-Bastion (Sprungserver, Jump Host) ist ein SSH-Server, über den Verbindungen zu weiteren Zielen im internen Netz laufen — ohne dass diese direkt von außen erreichbar sein müssen. Der Zugriff auf den Sprungserver selbst erfolgt per SSH-Key, das Ziel erreicht der SSH-Client automatisch durch den Sprung.
ProxyJump
Die moderne Variante ist ProxyJump. Sie ist seit OpenSSH 7.3 verfügbar und verkettet Verbindungen transparent:
ssh -J Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein. benutzer@ziel-server
Der Client baut zuerst eine Verbindung zur Bastion auf und leitet darüber die zweite Verbindung zum Ziel. In der ssh-config lässt sich das dauerhaft eintragen:
Host ziel-server
HostName ziel-server.intern
User benutzer
ProxyJump Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.
Danach genügt ssh ziel-server — die Bastion wird automatisch als Zwischenstation verwendet.
ProxyCommand als Alternative
Für ältere SSH-Versionen oder besondere Fälle dient ProxyCommand: ssh -W %h:%p reicht stdin/stdout der ersten Verbindung an das Ziel durch. ProxyJump ist die einfachere, bevorzugte Schreibweise desselben Prinzips.
Sicherheit
Im Unterschied zum Bastion Host (dem gehärteten Server-Konzept) beschreibt die ssh-Bastion die konkrete SSH-Konfiguration: keine Schlüsselkopie auf den Sprungserver, kein Agent Forwarding nötig — die Verbindung wird durchgereicht statt weitergegeben. Der SSH-Tunnel bleibt die Option, wenn ein einzelner Port statt einer kompletten SSH-Sitzung weitergeleitet werden soll.