Login SSH sans mot de passe
Je suis en train de re-paramétrer des backups depuis mon NAS avec Rsync et du coup, j’ai autorisé une clé SSH afin de ne pas avoir de mot de passe à entrer (et pouvoir mettre la commande Rsync dans un cron).
Voici donc la procédure quick&dirty que j’ai utilisée pour le jour où vous aurez besoin d’un login ssh sans mot de passe.
Pour cela, sur la machine locale, il suffit de faire un petit :
ssh-keygen -t dsa -f $HOME/.ssh/id_votrecle -P ''
Cela générera une clé sans passphrase. Vous pouvez ajouter une passphrase, mais dans ce cas, il faudra la préciser en clair dans vos scripts en faisant un “export PASSPHRASE=mapassphrase” avant de balancer la commande SSH.
Copiez la clé publique comme ceci sur le serveur distant :
scp -p /root/.ssh/id_votrecle.pub [email protected]:/root/.ssh/
xxx.xxx.xxx.xxx représente l’IP de la machine distante.
Hop, c’est copié.
Pensez aussi à autoriser les authorized_keys dans sshd_config
nano /etc/ssh/sshd_config
Et décommentez
AuthorizedKeysFile %h/.ssh/authorized_keys
Rechargez la config ssh
/etc/init.d/ssh force-reload
Copiez ensuite votre clé publique dans le fichier authorized_keys
cat id_votrecle.pub >> authorized_keys
Sachez qu’il est possible de préciser l’origine de la connexion dans le fichier authorized_keys avec le paramètre “from” (je vous laisse creuser ça).
Et voilà !
Maintenant sur votre machine locale, pour vous connecter à votre serveur distant simplement avec la clé, il suffit de la préciser comme ceci avec le paramètre -i :
ssh -i /root/.ssh/id_votrecle [email protected]
Et du coup, pour ma commande Rsync par exemple, ceci se présente comme ça :
rsync -e “ssh -i /root/.ssh/id_votrecle” -av [email protected]:/source/ /destination/
Vous avez surement mille autres variantes en tête. Moi j’ai fait ça comme ça, rapidement, mais n’hésitez pas à partager vos compléments d’astuces dans les commentaires.