jeudi 25 septembre 2008

ssh et scp sans mot de passe

Si vous utilisez souvent les commandes ssh et scp entre deux machines, il y a moyen de supprimer la demande de mot de passe. Cela ne détériore pas trop la sécurité, puisque la manip ne concerne que la liaison entre 2 machines spécifiques (et dans un seul sens), et uniquement sous votre login.

Pour cela, il suffit de générer une clé publique ssh sur la machine appelante machine1 avec l'instruction suivante (en gras, exemple sous un utilisateur user) :
machine1:~ user$ ssh-keygen -t rsa
Enter file in which to save the key (~/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ~/.ssh/id_rsa.
Your public key has been saved in ~/.ssh/id_rsa.pub.
The key fingerprint is:
...
en tapant ENTER à chaque question pour ne pas entrer de passphrase. Ensuite, il faut ajouter le contenu du fichier créé dans le fichier .ssh/authorized_key2 (à créer s'il n'existe pas) de la machine machine2:
machine1:~ user$ scp .ssh/id_rsa.pub machine2:
user@machine2's password:
machine1:~ user$
ssh machine2
user@machine2's password:
machine2:~ user$ mkdir .ssh
machine2:~ user$ cat id_rsa.pub >> .ssh/authorized_keys2
machine2:~ user$ logout
et voilà! Maintenant, si vous faites:
machine1:~ user$ ssh machine2
ou un scp, il ne vous demandera plus votre mot de passe.

Merci à Alex pour la combine.

1 commentaires:

someone you helped! a dit…

coooooooooool merci!