Connexion SSH sans mot de passe sous linux

Publié par eddymio le 22 mars 2015

Nous avions vu comment nous connecter sans avoir à entrer de mot de passe systèmatiquement lors d’une connexion sshdepuis le logiciel putty. Qu’en est il de cette belle fenêtre de terminal sous linux ?

 

Il s’agit du même principe ici, nous avons besoin de générer une clé publique.

Vérifions dans un premier temps si vous en avez une sur votre machine locale :

# ls -al ~/.ssh

Si vous obtenez quelque chose comme cela :

id_dsa

id_dsa.pub

id_rsa

id_rsa.pub

Alors vous pouvez utiliser une paire de clés sinon il vous faut en générer de nouveau.

Création d’une paire de clé publique et privée pour une connexion SSH à distance

# ssh-keygen -t rsa

On vous demande alors un mot de passe si vous le désirez. Ensuite par défaut la paire de clés est générée dans ~/.ssh/id_rsa et id_rsa.pub pour la clé publique.

Il est recommandé de renseigner un mot de passe pour protéger votre clé.

Copiez la clé publique sur votre compte sur le serveur distant dans : ~/id_rsa.pub

Si vous n’avez pas de dossier ~/.ssh créez le

Et si vous n’avez pas de fichier authorized_keys alors créez le aussi :

# touch ~/.ssh/authorized_keys

Et ajoutez le contenu de votre clé publique à l’intérieur du fichier :

# cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

Supprimez alors le fichier id_rsa.pub de votre machine locale pour pouvoir vous connecter. Placez aussi cette clé publique dans ~/.ssh/ sur votre serveur.

Une dernière chose pour vous connecter sans soucis, il vous faut démarrer un agent et lui communiquer les mots de passe pour accéder aux clés :

# eval $(ssh-agent -s)

# ssh-add

Vous serez invité à entrer vos mots de passe pour accéder aux différentes clés générées.

Vous êtes à présent prêt à vous connecter au serveur sans avoir à entrer de mot de passe de cette façon :

# ssh username@yourserveraddress

On ne peut plus simple, n’est ce pas ?

Alors pourquoi s’embéter avec Windows et putty !

Une fois terminé, vous pouvez stopper l’agent :

# ssh-agent -k

Cas clé existante :

La commande suivante permet de déplacer automatiquement la clé publique sur le serveur, au préalable, cette clé doit se trouver localement dans le répertoire .ssh de votre répertoire home :

$ ssh-copy-id user@votreserveur -p 22

Remplacez user par le nom d’utilisateur serveur et 22 par le port utilisé.

Autres informations :

Afin de déplacer un fichier via scp :

# scp -P 22 id_rsa.pub administrator@seveur:id_rsa.pub