Comment utiliser plusieurs clés privées avec ssh?

58

J'ai pu configurer ssh pour utiliser l'authentification par clé privée / publique. Maintenant je suis capable de faire

ssh user@server1

Et il se connecte avec la clé privée. Maintenant, je veux me connecter à un autre serveur et utiliser une clé différente. Comment le configurer pour

ssh user@server1

utilise privatekey1

ssh user@server2

et utilise privatekey2

Josué
la source
7
Aucune vraie raison - une mythbox personnelle et l'autre est un serveur de travail et je ne voulais pas utiliser ma clé personnelle au travail.
Josué
aucune des réponses ne semble répondre à la quesiton complète, par exemple, comment créer des clés différentes privatekey1 et privatekey2
jpwynn

Réponses:

49

Il y a quelques options.

  1. Chargez les deux clés dans votre agent ssh en utilisant ssh-add. Ensuite, les deux clés seront disponibles lors de la connexion aux deux serveurs.

  2. Créez votre $HOME/.ssh/configfichier et créez une Hostsection pour server1 et une autre pour server2. Dans chaque Hostsection, ajoutez une IdentityFileoption pointant sur le fichier de clé privée approprié.

Éteindre le feu
la source
2
ssh agent était une excellente idée, même si j’ai les fichiers de clé publique et privée, c’est-à-dire key1 et key1.pub, dans ~ / .ssh, ils seront automatiquement chargés.
Josué
57

Vous pouvez configurer cela dans votre ~/.ssh/configfichier. Vous auriez quelque chose comme ça:

Host server1
IdentityFile ~/.ssh/key_file1

Host server2
IdentityFile ~/.ssh/key_file2

man ssh_config est une référence

Rory
la source
4
Vous pouvez également spécifier Userque chaque hôte doit réduire le nombre de touches. Enfin, lorsque vous générez une nouvelle clé SSH pour chaque hôte, ssh-keygenassurez-vous de saisir un autre chemin de clé.
Marco Ceppi
Y at - il une possibilité de spécifier une clé par défaut, comme dire host x ->key1, puis le reste des hôteskey2
azerafati
Oui, utilisez sh Host * Et ajoutez les valeurs par défaut, que les substitutions ne peuvent pas être ajoutées en dessous. Aussi: plus sh man_ssh_config précisément la partie de la section "Host" concernant l'astérisque '*' et le point d'exclamation '!'
immeëmosol