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 Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein. 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.

Verwandte Grundlagen: SSH, sshd und Teleport.