Configuration du client SSH, la joie des clés

Il est courant, voir même conseillé de configurer l’accès SSH d’un serveur avec une authentification par clé publique. Lorsque l’on gère plusieurs serveurs, côté client, on se retrouve rapidement avec de nombreuses clé privées sur les bras (à moins d’utiliser toujours la même, mais ce n’est pas très « secure »). Voyons comment configurer la partie client pour gagner un peu de temps.

OpenSSHLa configuration du client SSH d’un utilisateur est décrite dans le fichier situé dans le répertoire de l’utilisateur et plus exactement dans le répertoire caché « .ssh ».

nano ~/.ssh/config

Voici un exemple de configuration :

# user1@server1
Host server1
 HostName server1.exemple.com
 User user1
 IdentityFile ~/.ssh/server1.user1.id_rsa

 # user1@server2
Host server2
 HostName server2.exemple.com
 User user1
 IdentityFile ~/.ssh/server2.user1.id_rsa

# user2@server3
Host server3
 HostName server3.exemple.com
 User user2
 IdentityFile ~/.ssh/server3.user2.id_rsa

J’ai choisi de préfixer le nom des clés privées par le nom du serveur suivi du nom de l’utilisateur afin de m’y retrouver facilement. Appliquez un chmod 600 sur les clés privées. Il est ensuite bien plus simple de se connecter en SSH aux différents serveurs :

// Avant la configuration du client SSH :
ssh -i ~/.ssh/server1.user1.id_rsa user1@server1.exemple.com
// Après la configuration :
ssh server1

Note du 22/10/2010 :

Avec trop de clés privées, il y a un risque d’avoir un échec d’authentification (problème constaté pour ma part). L’ensemble des clés chargées par l’agent sont testées lors de l’authentification. Pour éviter cela, il suffit d’ajouter cela à votre fichier de config :

Host *
  IdentitiesOnly yes

En by-passant l’agent, le mot de passe vous sera redemandé à chaque fois.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *