SSH – Authentification par clés

La clé permet de garantir à un système qu’un utilisateur est bien celui qu’il prétend être… en deux mots : « Je jure et je prouve que c’est bien moi ».

Pré-requis

Ce tutoriel est réaliser sur un environnement Unix (OS X ou un Linux) est n’est pas pleinement compatible avec Windows malgré un principe identique ?

Objectif

Je voudrais me connecter en SSH à un serveur distant, mais sans devoir rentrer un mot de passe à chaque fois.

Ce processus est très pratique quand nous devons faire des scripts qui s’exécutent seul (un cron dans la nuit par exemple) et nous ne pouvons pas taper le mot de passe.

Principe

L’authentification par clé fonctionne grâce à 3 composants :

Une clé publique : elle sera exportée sur chaque hôte sur lequel on souhaite pouvoir se connecter.
Une clé privée : elle permet de prouver son identité aux serveurs.
Une passphrase : Permet de sécuriser la clé privée (notons la subtilité, passphrase et pas password… donc « phrase de passe » et non pas « mot de passe »). La passphrase n’est pas obligatoire et nous n’en mettrons pas dans la suite de ce tutoriel.

Mais où doivent se trouver ces clés ❓

Une fois ces clés en notre possession, nous devons savoir où les disposer pour profiter d’une connexion sans mot de passe.

  • Le client (notre ordinateur par exemple) doit générer les deux clés – publique et privée – et doit les conserver.
  • Le serveur distant doit savoir que vous avez le droit d’accéder à ces ressources, il devra donc disposer de la clé publique.

 

Création de la paire de clé

Il va donc falloir créer le jeu des deux clés publique et privée. Pour se faire, ouvrez un terminal, et sur votre poste client (l’ordinateur qui veut se connecter à un serveur sans taper de mot de passe) tapez :

Vous devez répondre à plusieurs questions :

  • La passphrase n’est pas obligatoire
  • vous pouvez changer l’emplacement de votre jeu de clé

Une fois cette commande terminée, vous avez donc deux nouveaux fichiers à cette adresse
/home/mon_nom/.ssh/, à savoir id_rsa et id_rsa.pub.

Vous l’aurez compris, id_rsa.pub est la clé publique, id_rsa la privée.

Enregistrer la clé publique sur le serveur distant

Nous voulons donc fournir au serveur notre clé publique. Pour ce faire, utiliser la commande:

NB : Pour les utilisateurs de Mac OS X, ssh-copy-id n’existe pas par défaut, il faut l’installer avec brew brew install ssh-copy-id

La commande ssh-copy-id a pour but de copier la clé publique sur le serveur distant, et donc le mot de passe vous sera demandé à ce moment la (mais c’est la dernière fois ☺️ )

Tester la connexion

Pour tester, rien de plus simple :

Vous devez accéder directement au serveur sans taper de mot de passe.

Ingénieur Informatique spécialisé dans le développement web fullStack, je m’initie depuis quelque années au monde de la domotique et des objets connectés.
Partager cet articleShare on FacebookShare on Google+Tweet about this on TwitterPin on Pinterest

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *