Kann ich mehrere SSH-Schlüssel in meinem SSH-Ordner haben?

30

Kann ich mehrere SSH-Schlüssel erstellen und diese in benutzerfreundliche Namen umbenennen, damit ich weiß, welcher Schlüssel für welche Website usw. ist?

Ist das sicher?

z.B:

github_id_rsa
github_id_rsa.pub
..
...

Woher weiß es, gegen welchen Schlüssel es beim Verbinden zu prüfen ist?

Wenn ich jetzt auf meinem Computer auf known_hosts schaue, scheinen alle denselben Schlüssel nach dem Namen des Hosts zu haben?

user27449
quelle
Außerdem sind die bekannten Host-Schlüssel definitiv nicht dieselben. Schauen Sie sich nur die Zeilenenden für jeden Host an.
Slhck

Antworten:

15

Ja, Sie können verschiedene SSH-Schlüssel haben. Es gibt eine sehr gute Dokumentation auf der GitHub- Hilfeseite unter Help.GitHub - Multiple SSH Keys . Im Wesentlichen werden Sie ssh-add verwenden, um die zusätzlichen Schlüssel hinzuzufügen, damit der Agent sie verwenden kann. Anschließend richten Sie die ssh-Hosts-Konfiguration so ein, dass alle ssh-Verbindungen zu verschiedenen Domänen hier nachgeschlagen werden und der entsprechende Schlüssel verwendet wird. Viel Glück!

ArtemT
quelle
1
Link funktioniert nicht mehr
Danwellman
44

Sie können die Datei ~ / .ssh / config ändern, um unterschiedliche Identitätsdateien für unterschiedliche Server zu verwenden. Bearbeiten Sie die Datei ~ / .ssh / config in Ihrem bevorzugten Editor und fügen Sie einen Ihrer Situation entsprechenden Eintrag hinzu:

Host *
IdentityFile ~/.ssh/id_rsa

Host *.github.*
IdentityFile ~/.ssh/github_id.rsa

Host *.someother.com
IdentityFile ~/.ssh/someother_id.rsa

Der erste Teil oben legt die Standardeinstellungen für alle Hosts fest, und die anderen Abschnitte überschreiben, was für jeden der Hosts verwendet werden soll, die den Mustern entsprechen. Wenn Sie für jeden Host einen anderen Benutzernamen haben, können Sie dem Abschnitt einen Benutzerschlüssel gefolgt vom Benutzernamen auf der Fernbedienung hinzufügen .

Joehep
quelle
3
Dies ist die nützlichste Antwort auf diese Frage, unabhängig vom Ziel, ob GitHub oder andere Websites.
Pierre
Dies funktioniert nicht, wenn Sie mehrere Bitbucket-Konten haben und leider für jedes Konto einen anderen Schlüssel benötigen.
John Little
chmod 400 ~/.ssh/id_rsaoder chmod 400 ~/.ssh/foo_id.rsakönnte notwendig sein.
T. Woody
@ JohnLittle Werfen Sie einen Blick auf meine Antwort, die Mehrbenutzerkonto für dieselbe Domain löst.
Sathishkumar Rakkiasamy
4

Sie können für jede Site mit mehreren Benutzerkonten mehrere SSH-Schlüssel einrichten

Unten ist das Beispiel, dem ich in meiner Entwicklung für GitHub.com gefolgt bin

Beispiel für eine Konfigurationsdatei

#Personal account
 Host github.com-<personal-account-name>
 HostName github.com
 User git
 IdentityFile ~/.ssh/id_rsa_personal
 IdentitiesOnly yes



#Organization account
 Host github.com-<organization-name>
 HostName github.com
 User git
 IdentityFile ~/.ssh/id_rsa_work
 IdentitiesOnly yes

Zum Zeitpunkt des Hinzufügens eines neuen Ursprungs

Für persönliches Konto

git remote add origin [email protected]<personal-account-name>:<personal-account-name>/<repo-name>.git

Für Organisationskonto

git remote add origin [email protected]<organization-name>:<organization-name>/<repo-name>.git

Ich hoffe es hilft.

Sathishkumar Rakkiasamy
quelle