SSH avec clés publiques

Sur le client

On génère une clé RSA:

$ ssh-keygen -t rsa -b 1024 -f ~/.ssh/id_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): <entrée>
Enter same passphrase again: <entrée>
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
The key fingerprint is:
28:bd:83:81:b5:8f:22:59:44:26:28:ac:3c:91:e7:60 naxalite@chomp.naxalite

Dans cet exemple, pour ne pas avoir à saisir de mot de passe, on laisse la passphrase vide.

Sur le serveur

Ensuite, on copie le contenu du fichier ~/.ssh/id_rsa.pub de la machine locale dans le fichier ~/.ssh/authorized_keys de la machine distante.
Attention, la clé publique doit être en une seule ligne dans le fichier ~/.ssh/authorized_keys.
Pour se connecter à la machine il suffit maintenant de faire un simple ssh :

$ ssh username@remotehost

Pour que sshd accepte les clés publique il faut que l'option RSAAuthentication soit activée (c'est le cas par défaut).

Gérer plusieurs clés

Il est possible de gérer plusieurs clés sur une même machine :
il suffit lors de la génération des clés avec ssh-keygen de changer le paramètre -f
et lors de la connexion ssh de spécifier le paramètre -i <chemin nouvelle clé> pour utiliser celle-ci.
Exemple :

$ ssh -i ~/.ssh/id_rsa username@remotehost
documentations/reseau/ssh_cles_publiques.txt · Dernière modification: 2009/06/13 19:17 par pdaubard
OpenBSD Apache Driven by DokuWiki
CC Attribution-Noncommercial-Share Alike 3.0 Unported