Die Datei ~/.ssh/config (oder ssh-config) vereinfacht SSH-Verbindungen: Statt langer Kommandos mit vielen Optionen genügt ein kurzer Alias. Die Konfigurationsdatei wird vom OpenSSH-Client automatisch gelesen und fasst Host-Aliase, Benutzernamen, Schlüsseldateien, Sprungserver und Zeitüberschreitungen an einer Stelle zusammen.

Grundstruktur

Host web
    HostName server.example.com
    User benutzer
    IdentityFile ~/.ssh/id_ed25519
    ServerAliveInterval 60

Mit Host web wird ein Alias definiert — ssh web verbindet dann zu server.example.com als benutzer mit dem angegebenen Schlüssel. ServerAliveInterval sendet regelmäßig Keepalive-Pakete, damit die Verbindung bei längerer Inaktivität nicht abbricht. Es gibt kein ssh-config-Programm — die Bezeichnung steht für die Konfigurationsdatei des SSH-Clients.

Häufige Anweisungen

  • HostName — Zieladresse (Domain oder IP) hinter dem Alias
  • User — Benutzername auf dem Zielsystem
  • IdentityFile — privater Schlüssel für diese Verbindung (z.B. ~/.ssh/id_ed25519)
  • ProxyJump — Sprung über einen Zwischenserver: ProxyJump Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.
  • Port — abweichender SSH-Port (Standard: 22)
  • ForwardAgent / ForwardX11 — Agent- bzw. X11-Weiterleitung aktivieren
  • ControlMaster / ControlPersist — Verbindungs-Wiederverwendung (eine Verbindung, viele Fenster)

Platzhalter und Include

Host * gilt für alle Verbindungen und eignet sich für globale Vorgaben (z.B. ServerAliveInterval). Mit Include ~/.ssh/config.d/* lassen sich mehrere Konfigurationsdateien einbinden. Der Befehl ssh -G web zeigt die aufgelöste Konfiguration für einen Alias — praktisch zum Debuggen.

Praxis-Tipps

  • Bei mehreren Servern mit ähnlichen Einstellungen Platzhalter nutzen: Host server*.
  • Vor dem Einsatz von SSH-Agent und ForwardAgent an die Risiken des Agent Forwarding denken (Sprungserver-Ketten).
  • Für Sprungserver-Ketten ist ProxyJump die sichere Alternative zum Agent Forwarding.
  • Die Datei gehört dem eigenen Benutzer (Berechtigung 600) — sie enthält sensible Zugangsdaten. Die dort referenzierten Schlüsselpaare stammen von SSH-Keys.

Verwandte Grundlagen: SSH, ssh-keygen und ssh-copy-id. Den Zugriff auf mehrere Server erleichtert die ssh-, scp- und rsync-Befehle-Referenz.