SSH-Config: Mehrere Server bequem verwalten
Kurz: Die Datei ~/.ssh/config speichert Kurznamen, Benutzer, Ports und Schlüssel für Server; statt langer Befehle genügt dann ssh meinserver.
Genauer: Wer mit mehreren Rechnern arbeitet, tippt sonst ssh -i ~/.ssh/id_ed25519 -p 2222 admin@203.0.113.10. Die SSH-Config macht daraus ein kurzes ssh web. Sie gilt auch für scp, rsync und Git über SSH.
Im Detail
Beispiel
# ~/.ssh/config
Host web
HostName 203.0.113.10
User admin
Port 2222
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
Host github.com
User git
IdentityFile ~/.ssh/id_github
Host *
ServerAliveInterval 60
AddKeysToAgent yes
Jetzt: ssh web, scp datei web:/tmp/, rsync -av ordner/ web:backup/. Host * gilt für alle als Standard.
Nützliche Optionen
- ProxyJump (Sprungserver):
ProxyJump bastionverbindet über einen Zwischenrechner zu einem Server im internen Netz. - LocalForward / RemoteForward: Portweiterleitung (Tunnel) fest hinterlegen.
- ControlMaster/ControlPersist: wiederverwendet eine bestehende Verbindung, spart Anmeldezeit.
- ServerAliveInterval: verhindert Verbindungsabbrüche bei Leerlauf.
- StrictHostKeyChecking: Prüfung des Server-Fingerabdrucks (nicht abschalten!).
- IdentityFile + IdentitiesOnly: benutzt gezielt den richtigen Schlüssel.
Sicherheit
Berechtigungen: chmod 700 ~/.ssh, chmod 600 ~/.ssh/config und private Schlüssel. Nutze eigene Schlüssel pro Dienst oder zumindest pro Umgebung, geschützt mit Passphrase, und den ssh-agent. Passwort-Anmeldung am Server abschalten, wenn Schlüssel funktionieren. Die Config enthält keine Geheimnisse, aber Hostnamen und Benutzer: nicht blind öffentlich teilen.
Fehlersuche
ssh -v web (mehr -vvv) zeigt Details; ssh -G web gibt die wirksame Konfiguration aus. Typische Fehler: falscher Schlüssel, falsche Dateirechte, geänderter Server-Fingerabdruck (Eintrag in known_hosts prüfen, nicht einfach löschen, wenn du nicht weißt warum), Firewall oder falscher Port.
Siehe auch: ssh-agent, SSH-Tunnel, scp