Publié par : ungeekdeplus le : 6 mai 2009
Pendant bien longtemps je m’étais résigné à entrer mes login et mots de passe à la main sous prétexte que les clés SSH c’est compliqué.
Et ben, je me suis trompé et je peux vous assurer que c’est super pratique et simple à mettre en oeuvre.
login@machine:# ssh-keygen -t dsa -f nomdelacle Generating public/private dsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in test. Your public key has been saved in test.pub. The key fingerprint is: f7:35:e1:eb:c8:73:6a:75:01:51:62:ab:14:0f:55:91 login@machine
Vos clés se trouvent maintenant sous votre home dans le répertoire .ssh (cd ~/.ssh). Il y a 2 fichiers test et test.pub.
Au moment de la génération de la clé, vous pouvez la protéger par un mot de passe. Il vous sera demandé ensuite à chaque fois que vous utilisez votre clé. Sauf si vous utilisez un agent ssh. Voir plus loin.
Pour pouvoir se connecter sur une autre machine avec cette clé, vous devez copier votre clé publique sur le serveur de destination.
Pour cela:
ssh-copy-id -i ~/.ssh/test.pub logindistant@serveursshdistant
On vous demande alors le mot de passe du login distant. La clé est copiée et configurée pour être utilisée.
Maintenant vous pouvez faire un ssh logindistant@serveursshdistant et vous constaterez qu’on vous demande plus votre mot de passe !
Mais dans le cas où l’on veut protéger sa clé pas une passphrase (mot de passe), vous me dirais “ça sert à rien de retaper un autre mot de passe à chaque fois”.
Pour cela on va utiliser keychain qui permet de charger une fois pour toute la session notre clé.
Keychain permet de charger la clé par l’intermédiaire de ssh-agent. On lancera keychain dès l’ouverture de la première console en modifiant votre ~/.bashrc
D’abord vous devez installer keychain (selon votre distribution).
Ensuite on modifie le bashrc de votre session
vi ~/.bashrc
A la fin du fichier ajouter les 2 lignes suivantes:
keychain ~/.ssh/test_dsa source ~/.keychain/votremachine-sh
Fermez votre console et rouvrez là. Si tout se passe bien, on vous demandera votre passphrase et vous aurez le message suivant sur votre console:
* Adding 1 ssh key(s)... Identity added: /home/votrelogin/.ssh/test_dsa (/home/votrelogin/.ssh/test_dsa)
Il vous suffira ensuite de répéter l’étape du ssh-copy-id sur tous vos serveurs et vous pourrez vous connecter à toutes vos machines sans mot de passe toute la journée.
J’espère que cet article vous aura permis de franchir le pas. Bien sûr l’utilisation de keychain n’est pas obligatoire. Mais je trouve ça tellement pratique !