SSH-Key Management

SSH-Key Management

Ich hatte mich in meinem Artikel Ubuntu-Login via SSH Key bereits einmal mit der grundlegenden Authentifizierung an einem Linux-System per SSH-Key beschäftigt, doch wird das ganze Thema mit der Zeit verwirrend, wenn unterschiedliche SSH-Keys für mehrere Hosts oder Devices simultan verwendet werden – es musste etwas her, um die SSH Keys zu verwalten.

Genau für dieses Problem gibt es eine wirklich einfache und vor allem auch arbeitserleichternde Vorgehensweise, hier wieder einmal als ein kurzes HowTo zusammengefasst 🙂

Im .ssh-Verzeichnis des entsprechenden Arbeitsrechners wird einfach eine zusätzliche Datei angelegt

touch /[.ssh-Verzeichnis]/config

und in dieser Datei werden dann die verschiedenen SSH-Keys ( der private Teil ) hinterlegt sowie auch gleich den jeweiligen Zielsystemen zugeordnet. Pro Zielsystem wird jeweils ein eigenes SSH-Keyfile angelegt und sollte auch mit einem „sprechenden Namen“ versehen werden. Ich selbst habe mir angewöhnt, jeweils den Hostnamen des Zielsystems an das Ende des jeweiligen Keyfiles zu setzen, so kommt keine Verwirrung dazu auf.

Grundlegend wäre es somit dann bereits mit einem, hier beispielhaft dargestellten, Eintrag getan:

Host server_eins
    HostName server_eins.domain
    IdentityFile /[.ssh-Verzeichnis]/id_rsa_eins

Leider hat der ssh-Client die nette Angewohnheit, alle in dieser Config-Datei befindlichen Keys „durchzuprobieren“, was im Zweifel in fehlgeschlagenen Anmeldeversuchen endet. Um sich dieses Problems zu entledigen, bietet sich der IdentitiesOnly-Parameter an, welcher auf yes ( Standard wäre no ), für alle eingetragenen Zielsysteme gesetzt wird. Der entsprechende Eintrag in der Config-Datei steht in diesem Beispiel an erster Stelle:

Host *
    IdentitiesOnly yes
Host server_eins
    HostName server_eins.domain
    IdentityFile /[.ssh-Verzeichnis]/id_rsa_eins
Host server_zwei
    HostName server_zwei.domain
    IdentityFile /[.ssh-Verzeichnis]/id_rsa_zwei

Um dem Ganzen dann noch den letzten, eleganten Schliff zu verleihen, kann auch noch der entsprechende User zum Zielsystem eingetragen werden. Falls also verschiedene Benutzernamen auf den entsprechenden Zielsystemen verwendet werden, sieht das Ergebnis in der dann finalen ( Beispiel- ) Config-Datei so aus:

Host *
    IdentitiesOnly yes
Host server_eins
    HostName server_eins.domain
    User user_eins
    IdentityFile /[.ssh-Verzeichnis]/id_rsa_eins
Host server_zwei
    HostName server_zwei.domain
    User user_zwei
    IdentityFile /[.ssh-Verzeichnis]/id_rsa_zwei

Nach diesen Einträgen ist dann eine Verbindung auf beide, hier beispielhaften, Zielsysteme mit der einfachen Eingabe in der Shell wie folgt möglich:

ssh server_eins

oder eben

ssh server_zwei

Der bisher bekannte und genutzte Connection-Parameter-Kram entfällt somit komplett und nun noch das ( hoffentlich ), dem SSH-Key zugeordnete Passwort eingeben und die Verbindung steht …

Linux, Management, SSH, Ubuntu


Sven Neidahl

Hallo, ich bin Sven, technikfanatischer Mensch mit Blog-Ambitionen. Ich liebe leckeres Essen, laute Musik und Wandern mit anschliessendem Wellness-Programm, hauptsache "Lebe das Leben mit Liebe, Spass und Technik".

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.


© 2005 - 2022 - blog.neidahl.de, entstanden mit freundlicher Unterstützung von Kaffee