Das Problem
Bei einem Server geht es noch. Bei fünf tippst du ständig Varianten von ssh -i ~/.ssh/mein_key -p 2222 root@203.0.113.10 — und vertippst dich regelmäßig. Dabei kennt SSH seit jeher eine Konfigurationsdatei, die das überflüssig macht.
Die Datei anlegen
Sie liegt auf deinem eigenen Rechner, nicht auf dem Server:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
nano ~/.ssh/config
chmod 600 ~/.ssh/config
Ein erster Eintrag
Host web
HostName 203.0.113.10
User root
Port 2222
IdentityFile ~/.ssh/mein_key
Danach genügt ssh web. Das funktioniert auch für scp und rsync: scp datei.txt web:/tmp/ überträgt direkt dorthin.
Mehrere Server, gemeinsame Einstellungen
Wiederholungen lassen sich zusammenfassen. Ein Host *-Block am Ende der Datei gilt für alle Einträge, die vorher nichts anderes festlegen:
Host mail
HostName 203.0.113.20
User root
Host git
HostName 203.0.113.21
User git
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
Die beiden ServerAlive-Optionen sind der praktischste Tipp der ganzen Datei: Sie halten die Verbindung offen, statt sie nach ein paar Minuten Untätigkeit einfrieren zu lassen.
Sprung über einen Zwischenserver
Liegt ein Server nur über einen anderen erreichbar im Netz, erledigt ProxyJump das in einem Schritt:
Host intern
HostName 10.0.0.5
User root
ProxyJump web
ssh intern geht dann automatisch über web. Kein manuelles Einloggen in zwei Etappen mehr.
Reihenfolge beachten
SSH liest die Datei von oben nach unten und nimmt für jede Option den ersten passenden Wert. Deshalb gehören spezifische Einträge nach oben und der Host *-Block ganz nach unten. Wer es andersherum macht, wundert sich, warum seine Einstellungen ignoriert werden.
Was nicht hineingehört
Passwörter. SSH-Config kennt keine Option dafür, und das ist gut so. Wenn du dich noch mit Passwort anmeldest, ist der Umstieg auf Schlüssel der nächste sinnvolle Schritt — danach brauchst du ohnehin nichts mehr einzugeben.