Authentification SSH par clé RSA
Par CrazyCat le 29/12/2010, 09:40 - Shell - Lien permanent
Lorsque l'on doit fréquemment accéder par SSH à une machine, il est fastidieux de chaque fois devoir taper son mot de passe. Il existe heureusement une méthode permettant d'avoir une connexion automatique et sécurisée, utilisable pour tout ce qui est habituellement fait à travers le SSH (connexion en console, sftp ou même scp), il s'agit des clés RSA.
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