Ich habe meine .ssh/config Datei mit den Einträgen die ich benötige. In dieser Datei habe ich Einträge für dienstliche Systeme aber auch private. Aus diesem Grund kann die Datei nicht einfach mit anderen Kollegen geteilt werden. Wie das dennoch erreicht werden kann, kurz und pragmatisch hier beschrieben:
Als allererstes muss ich die Konfigurationsdatei aufsplitten können in mehrere Teile. Also ein ~/.ssh/config.d/ Verzeichnis anstatt einer einzelnen Datei. SSH unterstützt das von Haus aus nicht, man kann sich aber an dieser Stelle eines Tricks bedienen: ein Alias für das Kommando „ssh“, das bei jedem Aufruf die .ssh/config einfach neu schreibt. Dafür die folgende Zeile in die .bash_aliases eintragen:
alias ssh="cat ~/.ssh/config.d/* > ~/.ssh/config; ssh" |
alias ssh="cat ~/.ssh/config.d/* > ~/.ssh/config; ssh"
Als zweites gilt es nun die Dateien aufzuspalten. Ich persönlich pflege drei Dateien:
- general
- privat
- work
In der ersten Datei habe ich Optionen, die für alle Hosts gelten:
Host *
Compression yes
CompressionLevel 9
ServerAliveInterval 30
#VisualHostKey yes |
Host *
Compression yes
CompressionLevel 9
ServerAliveInterval 30
#VisualHostKey yes
In den anderen Dateien sind die Definitionen für die privaten und die Arbeitsrechner.
Der dritte Punkt ist der einfachste: Die Dateien einfach in ein Repository legen, symbolische Links aus dem Repository in das config.d Verzeichnis erzeugen und mit den Kollegen teilen.
Natürlich Backups zwischendrin etc. nicht vergessen ;-)