SSH : identification automatique
Identification automatique avec SSH
Pour se connecter sur une machine distante, cette dernière demande le mot de passe de la session en cours. Et ce pour un certain nombre de commandes, comme le transfère de fichier. Afin de rendre l’utilisation de SSH plus confortable, il est possible d’utiliser l’idenfitication automatique.
Côté client, lancer ssh-keygen
.
user@debian~$: ssh-keygen -t rsa
L’option -t
(t pour type) permet de spécifier le type de clef à créer. Trois valeurs sont possible : rsa1, rsa ou dsa pour le protocol en version 2.
C’est une commande intéractive qui demande en premier lieu l’emplacement des clefs dans des fichiers. Une valeur par défaut est proposé :
~/user/.ssh/id_rsa.
En second lieu ssh-keygen
, demande une passphrase permettant de crypter la clef privée sur la machine client.
: la passphrase est facultative. Si le champ de saisie est laissé vide, la connexion automatique se fera tout aussi bien en évitant l’étape d’authentification.
Par défaut, la paire de clefs se trouve dans le dossier ~/user/.ssh/. Trois fichiers s’y trouvent :
id_rsa : la clef privée ;
id_rsa.pub : la clef publique (celle qui doit-être envoyé à la machine distante) ;
know_hosts : la liste des fingerprint tenue à jour pour le système permettant de sauvegarder la liste des identités des serveurs.
Une fois placé dans le dossier ~/user/.ssh/, il faut envoyer la clef publique au serveur grâce à ssh-copy-id
.
user@debian~/.ssh$: ssh-copy-id -i id_rsa.pub login@ip_distant
L’option -i
donnée à ssh-copy-id
indique à la commande qu’il s’agit d’un fichier d’identité, donc d’une clef.
La connexion se fait grâce à la même commande.
user@debian~$: ssh login_distant@ip_machine_distant
Néanmoins le serveur demande la passphrase (si celle-ci est présente) et non le mot de passe. Cette passephrase sera demandé à chaque fermeture de session de l’une ou l’autre des machines.
Sur la machine client la commande ssh-add
est un agent permettant de mémorisée les clefs privées pendant toute la durée d’une session.
user@debian~$: ssh-add Enter passphrase for /home/user/.ssh/id_rsa: Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)
L’intérêt de l’agent SSH est qu’il ne demande la passphrase qu’une seule fois au début. Il est ensuite possible de se connecter plusieurs fois sur le même serveur, ou même sur plusieurs serveurs différents, le tout sans avoir besoin de retaper la passphrase. Néanmoins, si la session cliente est formée, il faudra resaisir la passphrase à sa réouverture.
Article lié : SSH : installation et connexion