SSH mit mehreren Schlüsseln nutzen

Normalerweise erzeugt man einen privaten und einen öffentlichen Teil seines SSH-Schlüssels, hinterlegt den öffentlichen Teil auf den entsprechenden Servern und loggt sich mit diesen dort ein. Nun kann es aber durchaus vorkommen, dass man mit unterschiedlichen Schlüsselpaaren arbeiten muss um sich auf verschiedenen Servern einzuloggen. Zur Lösung dieses Problems existieren zwei Herangehensweisen, welche beide mit der SSH-Konfigurationsdatei arbeiten. Die Konfigurationsdatei ist im Home-Verzeichnis der Nutzers unter .ssh/config zu finden ist. Bei der ersten Möglichkeit werden die entsprechenden Schlüssel in der Konfigurationsdatei hinterlegt:

IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_rsa_production
IdentityFile ~/.ssh/id_rsa_test
IdentityFile ~/.ssh/id_rsa_integration

Damit werden bei einem Login auf einem Server die Schlüssel der Reihe nach durchprobiert. Bei der zweiten Möglichkeit wird ein Host pro Server konfiguriert:

Host production production.example.com
    HostName production.example.com
    User root
    IdentityFile ~/.ssh/id_rsa_production
    

Host test test.example.com
    HostName test.example.com
    User root
    IdentityFile ~/.ssh/id_rsa_test

Host integration integration.example.com
    HostName integration.example.com
    User root
    IdentityFile ~/.ssh/id_rsa_integration

In der Konfiguration des Hosts befinden sich neben dem Host auch die zu nutzende Schlüsseldatei. Als weiteren Vorteil kann man die SSH-Verbindung nun über den definierten Kurznamen aufrufen:

ssh production

Dabei wird die Verbindung mit der definierten Schlüsseldatei aufgebaut, so dass ein durchprobieren der unterschiedlichen Schlüssel vermieden wird.

6 Kommentare » Schreibe einen Kommentar

  1. Hallo,
    der Tipp gefällt mir sehr gut und ich werde sicher mal ausprobieren. Vielleicht kann man in diesem Zusammenhang auch mal ein anderes Problem mit ssh beschreiben. Ich übertragen meine Dateien zwischen meinem Laptop und meinem Android-Handy auch immer mit ssh. Dabei habe ich mir einen SSH-Server auf dem Android-Handy installiert, da dieser auch einen Hotspot zur Verfügung stellt womit ich mich verbinden kann. Leider ist es mir bisher nicht gelungen in Android 6 eine feste IP-Adresse zu hinterlegen, somit habe ich imme welchselnde IP-Adressen. Das führt dazu dass ich ständig neue Schlüssel anlegen muss. Wie werde ich diese wieder los? Oder wie zwinge ich Android 6 eine feste IP-Adresse zu vergeben. Würde mich über einen Beitrag dazu sehr freuen.
    Viele Grüße
    Horst Meyer

    • Am Handy in den Einstellungen für WLAN das gewünschte WLAN gedrückt halten. Dann geht nochmal ein Menü auf mit weiteren Einstellungen, ändern oder ähnlichem. Dort gibts zumindest bei mir einen Hacken mit erweiterte Einstellungen und da kann man dann von DHCP zu einer statischen IP wechseln.

      • Sorry, aber ich arbeite nicht mit WLAN sondern mit meinem WLAN-Hotspot. Das ist etwas anderes. Wenn ich die allgemeinen WLAN-Einstellung schaue, dann sehe ich nur das Feld IPv4-Adresse Nicht verfügbar in grau hinterlegt.

  2. Danke für die Info.

    Gibt es vielleicht auch eine Lösung um alle schlüssel neu zu generieren?
    Ich habe diverse SSH schlüssel und einige sind ur-alt. Es wäre praktisch wenn es möglich wäre, dass sich SSH schlüssel erneuern wenn ich mich das nächste mal einlogge. Oder wenn ich die SSH Config Datei durchlaufen lassen könnte um alle schlüssel zu ersetzen.

    • Ausserdem wäre es dann interessant eine Option einzurichten die veraltete schlüssel löscht, wenn sie ersetzt wurden sowie länger als z. B. 90 Tage nicht mehr benutzt wurden.

  3. das kann sehr schnell zu “Too many authentication failures” führen! legt die keys besser in ein subdirectory wie bspw. “~/.ssh/keypairs/…” (behauptet nachher nicht, ich hätte euch nicht gewarnt)

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.