Pré-requis

Il faut que la machine de destination soit configurée pour accepter les authentifications par clé RSA, ceci se trouve dans le fichier /etc/ssh/sshd_config, une ligne contenant:

RSAAuthentication yes

Il faut aussi que dans votre répertoire $HOME (habituellement /home/utilisateur/) se trouve un répertoire .ssh (droits: 700) dans lequel seront inscrites les clés authorisées.

Génération des clés

La génération de la paire de clés se fait très simplement en ligne de commande, sur votre machine locale:

vous@local:~$ ssh-keygen -t rsa

Cet utilitaire vous propose de mettre une phrase de protection, qui vous sera demandée chaque fois que vous devrez utiliser cette clé. Heureusement, ceci est optionnel et il vaut mieux la laisser vide.

Il vaut aussi mieux accepter le répertoire et les noms de fichier proposés par défaut (/home/vous/.ssh/id_rsa). La clé est donc générée sous la forme de deux fichiers: /home/vous/.ssh/id_rsa et /home/vous/.ssh/id_rsa.pub. Cette dernière est la clé publique que vous aurez à transmettre sur les autres machines.

Installation

Il faut maintenant déployer la clé publique vers les machines sur lesquelles vous vous connectez, le plus simple étant d'utiliser scp:

vous@local:~$ scp .ssh/id_rsa.pub vous@ip.de.machine/~

Cette commande va copier le fichier dans votre $HOME sur la machine distante.

Une fois ceci fait, connectez-vous normalement en ssh afin d'intégrer la clé dans le fichier ~/.ssh/authorized_keys. Notez que ce fichier peut contenir plusieurs clés (une par ligne), donc il faut faire une concaténation:

vous@distant:~$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

Une fois ceci fait, lancez une nouvelle connexion SSH pour tester votre identification automatique:

vous@local:~$ ssh vous@ip.de.machine