Tutoriel pour établir une connexion ssh sans mot de passe
A partir de mon poste client, je souhaite me connecter en root sur un serveur nomé « serveur.daminoux.fr » sans que cela me demande de mot de passe.
Les lignes de commandes:
Sur le poste client :
ssh-keygen -t rsa
Cette commande génère une clé publique et une clé privée (dans l’ordre, id_rsa.pub et id_rsa) dans le dossier ~/.ssh
Ensuite, il faut copier la clé publique sur le serveur.
/usr/bin/ssh-copy-id -i ~/.ssh/id_rsa.pub root@serveur.daminoux.fr
Il faudra taper le mot de passe root du serveur mais uniquement cette fois. Cette commande copie le fichier ~/.ssh/id_rsa.pub dans le fichier /root/.ssh/authorized_keys du serveur (même si ce fichier n’existe pas).
et après pour tester
ssh root@serveur.daminoux.fr
il faudra taper yes une première fois et après plus aucun mot de passe ne sera demandé.
Script:
Et en cadeau un petit script qui tout cela tout seul. Il suffit de passer en paramètre du script l’hôte ou l’adresse ip dont vous souhaité vous connecter en root sans mot de passe
#!/bin/bash ######################################## # # generation cle ssh # ######################################## # ce script génère une clé ssh et #la transfère sur l'hôte ( passer en paramètre) # afin de pouvoir se connecter sans mot passe # sur la machine distante # AUTEUR: https://daminoux.fr # Date: 12/2015 # Version: 0.1 if [ $# -ne 1 ] then echo "vous n'avez pas précisé le nom de l'hôte pour laquelle il faut générer une clé " echo "le nom de l'hôte ou l'adresse IP doit être le premier paramètre " exit fi host=$1 if [ ! -e /usr/bin/ssh-keygen ] then echo "ssh-keygen n'est pas installé !" fi /usr/bin/ssh-keygen -t rsa -N "" -f ~/.ssh/$host.key if [ ! -e /usr/bin/ssh-copy-id ] then echo "ssh-copy-id n'est pas installé !" fi /usr/bin/ssh-copy-id -i ~/.ssh/$host.key.pub root@$host if [ ! $? -eq 0 ] then echo -e "ERREUR je n'ai pas réussis à copier la clé \n" echo -e " veuillez essayer de refaire la commande ci-dessous\n" echo -e "ssh-copy-id -i ~/.ssh/$host.key.pub root@$host" exit fi
En espérant que cela vous serve.