trousseau de cles

Authentification ssh avec plusieurs clés privées

Comment utiliser des clés privées différentes pour chaque serveur ssh

ssh plusieurs cles, plusieurs cle ssh, ssh plusieur cle, plusieurs clefs privees ssh, plusieurs cles ssh, cle privee ssh linux, netasq ssh passphrase

Date de publication : 2009-06-03 09:02:44

Depuis un certain temps j'utilise la connexion par clé privée avec ssh. Cependant dans ma configuration il fallait que j'utilise une clé privée différente par serveur.

Le but de ce tutoriel est de permettre l'utilisation de clés ssh multiples : une clé ssh avec passphrase et une clé ssh sans passphrase pour chacun des serveurs.

Après quelques recherches j'ai finalement trouvé comment faire pour configurer ssh afin de réaliser ces différents types de connexion.

Génération de la clé ssh avec passphrase

Je lance la commande pour générer une clé ssh et je saisie une passphrase lorsque l'on me le demande :


pcr@home:~$ ssh-keygen -t dsa -b 1024 -f ~/.ssh/key-with-passphrase
Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/pcr/.ssh/key-with-passphrase.
Your public key has been saved in /home/pcr/.ssh/key-with-passphrase.pub.

Génération de la clé ssh sans passphrase

Même chose que précédemment en ajoutant une passphrase vide :


pcr@home:~$ ssh-keygen -t dsa -b 1024 -f ~/.ssh/key-without-passphrase -N ""
Generating public/private dsa key pair.
Your identification has been saved in /home/pcr/.ssh/key-without-passphrase.
Your public key has been saved in /home/pcr/.ssh/key-without-passphrase.pub.

Copie des clés publiques sur les serveurs

Je copie la clé publique avec passphrase sur le serveur où l'authentification doit se faire avec passphrase avec la commande suivante :


pcr@home:~$ ssh-copy-id -i ~/.ssh/key-with-passphrase.pub pcr@server-with-passphrase.com

Ensuite je fais la même chose avec le serveur qui doit permettre l'authentification sans passphrase :


pcr@home:~$ ssh-copy-id -i ~/.ssh/key-without-passphrase.pub pcr@server-without-passphrase.com

Configuration du client ssh

Pour indiquer au client ssh la clé qu'il doit utiliser pour chacun des serveurs je crée le fichier ~/.ssh/config dans lequel je spécifie pour chacun des serveurs la clé qu'il doit utiliser :


pcr@home:~$ cat ~/.ssh/config
Host server-without-passphrase.com
User pcr
IdentityFile ~/.ssh/key-without-passphrase

Host server-with-passphrase.com
User pcr
IdentityFile ~/.ssh/key-with-passphrase

L'instruction User pcr est inutile dans mon cas, mais elle permet de forcer le client ssh à se connecter au serveur en utilisant l'utilisateur pcr.

Image : mollydot

 
 

b1n@sp1n