openssh

connexion ssh sans mot de passe

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: http://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.

Laisser un commentaire