So konfigurieren Sie den SSH-Client für die automatische Verwendung privater Schlüssel

10

Ich arbeite immer sshmit dem -iParameter und es ist mühsam, immer den richtigen Schlüssel für den Host einzugeben, zu dem ich eine Verbindung herstelle.

Gibt es eine Konfigurationsdatei oder etwas (auf dem Mac), um zu definieren, welcher private Schlüssel beim Herstellen einer Verbindung zu einem bestimmten Host verwendet werden soll?

Leopd
quelle

Antworten:

12

Ja, Sie möchten eine ~/.ssh/configDatei erstellen . Auf diese Weise können Sie einen Verknüpfungsnamen für einen Host definieren, den Benutzernamen, unter dem Sie eine Verbindung herstellen möchten, und den zu verwendenden Schlüssel. Hier ist ein Teil von mir mit verschleierten Hostnamen:

Host-Registerkarten
     Hostname tabs.com
     Benutzer mich
     IdentityFile ~ / .ssh / new_rsa

Host scm.company.com
     Benutzerkappe
     IdentityFile ~ / .ssh / git_rsa

Host-Projekt-Staging
     Hostname 50.56.101.167
     Benutzer mich
     IdentityFile ~ / .ssh / new_rsa

Damit kann ich sagen ssh tabsund mich als Benutzer memit dem Schlüssel mit host tabs.com verbinden new_rsa, als hätte ich es benutzt ssh [email protected] -i ~/.ssh/new_rsa.

pjmorse
quelle
Auch ein guter Weg, wenn Sie ssh-agentaus irgendeinem Grund nicht verwenden möchten .
voretaq7
Ich wusste nicht, dass das möglich ist. +1
Safado
2

SSH-Clients verwenden normalerweise ~/.ssh/identity(ssh v1) oder einen von ~/.ssh/id_rsaoder ~/.ssh/id_dsa(v2) als privaten Standardschlüssel. Sie können dies in ändern ~/.ssh/config(der IdentityFileParameter - die -iOption zu SSH überschreibt dies tatsächlich. Weitere man ssh_configInformationen finden Sie unter).

Wenn Sie mehrere private Schlüssel haben, ist die Verwendung ssh-agentwahrscheinlich die bessere Wahl.
Siehe man ssh-agentfür weitere Details.

voretaq7
quelle
+1 zur Beschreibung der Standardeinstellungen und zum Zitieren der Manpage.
pjmorse
0

Wenn Sie unterschiedliche Schlüssel für unterschiedliche Server verwenden, glaube ich nicht, dass dies der Fall ist.

Wenn Sie einen einzelnen Schlüssel für alle Server verwenden, speichern Sie ~/.ssh/id_rsaihn einfach unter , er wird automatisch verwendet.

Hubert Kario
quelle