Wie können mehrere private Schlüssel mit ssh verwendet werden?

58

Ich konnte ssh für die Verwendung der Authentifizierung mit privaten / öffentlichen Schlüsseln einrichten. Jetzt kann ich es tun

ssh user@server1

Und es meldet sich mit dem privaten Schlüssel an. Jetzt möchte ich eine Verbindung zu einem anderen Server herstellen und einen anderen Schlüssel verwenden. Wie stelle ich das so ein?

ssh user@server1

benutzt privatekey1

ssh user@server2

und benutzt privatekey2

Joshua
quelle
7
Kein wirklicher Grund - die eine ist eine persönliche Mythenbox und die andere ein Arbeitsserver, und ich wollte meinen Home-Schlüssel nicht bei der Arbeit verwenden.
Joshua
Keine der Antworten scheint die vollständige Frage zu beantworten, z. B. wie man verschiedene Schlüssel privatekey1 und privatekey2 erstellt
jpwynn

Antworten:

49

Es gibt einige Möglichkeiten.

  1. Laden Sie beide Schlüssel mit in Ihren ssh-Agenten ssh-add. Dann sind beide Schlüssel verfügbar, wenn eine Verbindung zu beiden Servern hergestellt wird

  2. Erstellen Sie Ihre $HOME/.ssh/configDatei und erstellen Sie einen HostAbschnitt für Server1 und einen anderen für Server2. Fügen Sie in jedem HostAbschnitt eine IdentityFileOption hinzu, die auf die entsprechende private Schlüsseldatei verweist

Feuer unterdrücken
quelle
2
ssh agent war eine großartige Idee, auch wenn ich sowohl die öffentlichen als auch die privaten Schlüsseldateien, dh key1 und key1.pub, in ~ / .ssh habe, werden sie automatisch geladen.
Joshua
57

Sie können dies in Ihrer ~/.ssh/configDatei einstellen . Du hättest so etwas:

Host server1
IdentityFile ~/.ssh/key_file1

Host server2
IdentityFile ~/.ssh/key_file2

man ssh_config ist eine Referenz

Rory
quelle
4
Sie können auch Userfür jeden Host angeben, dass die Tastenanschläge reduziert werden sollen. Wenn Sie einen neuen SSH-Schlüssel für jeden Host generieren, ssh-keygenstellen Sie sicher, dass Sie tatsächlich einen alternativen Schlüsselpfad eingeben.
Marco Ceppi
Gibt es eine Option, um einen Standardschlüssel anzugeben, wie zum Beispiel host x ->key1key2
say
Ja, verwenden Sie sh Host * und fügen Sie die Standardeinstellungen hinzu, um die Überschreibungen darunter hinzuzufügen. Außerdem: sh man_ssh_config Insbesondere der Teil im Abschnitt "Host" in Bezug auf das Sternchen "*" und das Ausrufezeichen "!"
Immeëmosol