Skip to main content

SSH ProxyJump

1. SSH-Konfiguration für Jump Host mit AD-Anbindung

1.1. Problem

Wenn du dich über einen SSH Jump Host zu anderen Servern verbinden willst und beide Server eine AD-Anbindung via SSSD verwenden, musst du normalerweise bei jeder Verbindung das Passwort eingeben.

1.2. Lösung

Die SSH-Konfiguration nutzt ControlMaster, um SSH-Verbindungen wiederzuverwenden. Dadurch musst du das Passwort nur einmal beim ersten Verbindungsaufbau eingeben - alle weiteren Verbindungen innerhalb von 10 Minuten nutzen die bestehende Verbindung ohne erneute Passwort-Eingabe.

1.3. Wie funktioniert ControlMaster?

  • ControlMaster auto: SSH erstellt automatisch eine "Master-Verbindung" beim ersten Connect
  • ControlPath: Speicherort für den Socket, über den die Verbindung wiederverwendet wird
  • ControlPersist 10m: Die Verbindung bleibt 10 Minuten offen, auch wenn du dich abmeldest

1.4. Neueinrichtung - Schritt für Schritt

1.4.1. 1. SSH-Config erstellen/bearbeiten

Erstelle oder bearbeite die Datei:


nano ~/.ssh/config

1.4.2. 2. Jump Host konfigurieren

Füge zuerst die Konfiguration für deinen Jump Host hinzu:

Ersetze: $USERNAME ([email protected])


Host fqdnjumphost*
  Hostname fqdnjumphost.foo.de
  ForwardAgent yes
  ProxyJump none

Host lsw*
  ProxyJump fqdnjumphost.foo.de
  User [email protected]

Host *
  #LogLevel DEBUG
  ControlMaster auto
  ControlPath ~/.ssh/.session_%h
  ControlPersist 600m

1.4.3. 5. Berechtigungen setzen

SSH-Config muss die richtigen Berechtigungen haben:


chmod 600 ~/.ssh/config

1.4.4. 6. Testen

Teste die Verbindung:

ssh jumphost

Beim ersten Mal wirst du nach dem Passwort gefragt. Melde dich ab und verbinde dich erneut - jetzt sollte kein Passwort mehr nötig sein (für 10 Minuten).

1.5. Troubleshooting

1.5.1. Verbindung fragt trotzdem nach Passwort

  1. Prüfe, ob ControlMaster-Socket existiert:


    ls -la ~/.ssh/cm-*
  2. Teste die SSH-Konfiguration für einen Host:


    ssh -G <hostname> | grep -E "(controlmaster|proxyjump)"

    controlmaster sollte auto sein, nicht false

  3. Lösche alte Sockets und versuche es erneut:

rm ~/.ssh/cm-*

1.5.2. ControlMaster-Verbindung beenden

Um eine bestehende Master-Verbindung manuell zu beenden:


ssh -O exit jumphost

1.5.3. Aktive ControlMaster-Verbindungen prüfen


ssh -O check jumphost

1.6. Wichtige Hinweise

  • ControlPersist-Dauer: Die 10 Minuten kannst du anpassen (z.B. 1h für 1 Stunde, 30m für 30 Minuten)
  • Socket-Dateien: Die Dateien ~/.ssh/cm-* sind Unix-Sockets und werden automatisch erstellt/gelöscht
  • Sicherheit: ControlMaster erhöht nicht das Sicherheitsrisiko, da nur dein User auf die Sockets zugreifen kann
  • Mehrere Sessions: Du kannst beliebig viele SSH-Sessions gleichzeitig öffnen - alle nutzen die gleiche Master-Verbindung