Puis-je avoir plusieurs clés ssh dans mon dossier .ssh?

30

Puis-je créer plusieurs clés ssh et les renommer en noms conviviaux afin que je sache quelle clé est pour quel site Web, etc.

Est-ce sûr?

par exemple:

github_id_rsa
github_id_rsa.pub
..
...

Comment saura-t-il quelle clé vérifier lors de la connexion?

Sur mon ordinateur maintenant, quand je regarde les hôtes connus, ils semblent tous avoir la même clé après le nom de l'hôte ??

user27449
la source
1
Copie intersite
De plus, les clés d'hôte connues ne sont certainement pas les mêmes, il suffit de regarder les extrémités des lignes pour chaque hôte.
slhck

Réponses:

15

Oui, vous pouvez avoir différentes clés ssh. Il existe une très bonne documentation sur le site d'aide de GitHub sur Help.GitHub - Plusieurs clés SSH . Essentiellement, vous utiliserez ssh-add pour ajouter les clés supplémentaires afin que l'agent puisse les utiliser. Ensuite, vous configurez la configuration des hôtes ssh de sorte que toutes les connexions ssh à différents domaines soient recherchées ici et que la clé appropriée soit utilisée. bonne chance!

ArtemT
la source
1
Link ne fonctionne plus
danwellman
44

Vous pouvez modifier le fichier ~ / .ssh / config pour utiliser un fichier d'identité différent pour différents serveurs. Modifiez le ~ / .ssh / config dans votre éditeur préféré et ajoutez une entrée appropriée à votre situation comme ceci:

Host *
IdentityFile ~/.ssh/id_rsa

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

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

La première partie ci-dessus définit les valeurs par défaut pour tous les hôtes et les autres sections remplacent ce qui doit être utilisé pour chacun des hôtes correspondant aux modèles. Si vous avez un nom d'utilisateur différent pour chacun des hôtes, vous pouvez ajouter une clé d' utilisateur suivie du nom d'utilisateur sur la télécommande à la section.

joehep
la source
3
C'est la réponse la plus utile à cette question quelle que soit la destination, que ce soit GitHub ou d'autres sites.
Pierre
Cela ne fonctionne pas si vous avez plusieurs comptes bitbucket et devez malheureusement avoir des clés différentes pour chacun.
John Little
chmod 400 ~/.ssh/id_rsaou chmod 400 ~/.ssh/foo_id.rsapourrait être nécessaire.
T.Woody
@JohnLittle Jetez un oeil à ma réponse qui résout le compte multi-utilisateur pour le même domaine.
Sathishkumar Rakkiasamy
4

Vous pouvez configurer plusieurs clés ssh pour tout site ayant plusieurs comptes d'utilisateurs

Voici l'exemple que je suivais dans mon développement pour GitHub.com

Exemple de fichier de configuration

#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

Au moment d'ajouter une nouvelle origine

Pour compte personnel

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

Pour le compte de l'organisation

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

J'espère que cela aide.

Sathishkumar Rakkiasamy
la source