Skip to main content

SSH ProxyJump

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

1.1. Problem

Szenario:Wenn Mandu kanndich sichüber lokaleinen 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 aufeinmal einenbeim Linux-Serverersten z.B.Verbindungsaufbau linuxops01p.foo.deeingeben per- alle weiteren Verbindungen innerhalb von 10 Minuten nutzen die bestehende Verbindung ohne erneute Passwort-Eingabe.

1.3. Wie funktioniert ControlMaster?

    ControlMaster auto: SSH verbinden,erstellt aberautomatisch diesereine hat"Master-Verbindung" Zugriffbeim aufersten alleConnect anderenControlPath: ServerSpeicherort z.B.für inden einemSocket, Rechenzentrum,über dannden kanndie diesenVerbindung Serverwiederverwendet alswird ProxyJumpControlPersist verwenden.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:


    Statt
    sichnano immer~/.ssh/config
    erst
    auf
    fqdnjumphost.foo.de

    einzuloggen

    und

    1.4.2. von2. dortJump weiterzuspringen,Host gibtkonfigurieren

    man

    Füge einzuerst fachdie sshKonfiguration linux123p.foo.defür ein.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

      Prüfe, ob ControlMaster-Socket existiert:


      ls -la ~/.ssh/cm-*

      Teste die SSH-Konfiguration für einen Host:


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

      controlmaster sollte auto sein, nicht false

      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