L’échange de clés ssh

Encore un acronyme récursif ? Cela signifie Secure SHell.

Lorsque vous souhaitez contrôler un serveur, ce qui arrive souvent quand vous faites des sites web, le meilleur (le seul ?) moyen d’y arriver est de se connecter en ligne de commande sur le serveur distant. Pour cela vous allez établir une connexion ssh.

Lorsque vous êtes connecté à un serveur distant en ssh, tous les échanges sont cryptés, ce qui rend quasiment impossible un piratage même ciblé.

La connexion ssh peut-être authentifiée classiquement par un couple identifiant / mot de passe ou de manière encore plus sûre par un échange de clés.

Je suis le client, je veux me connecter sur le serveur. Je génère deux clés (différentes). une qui est privée et que mon pc sera le seul à connaître. Une qui est publique et que je peux partager à tout serveur ou service distant.

Je vais pouvoir me connecter via la commande :

ssh user@serveur

Parabole

Vous conversez par chat avec un ami. Mais vous savez qu’il y a un risque d’usurpation d’identité. Vous vous mettez d’accord avec votre ami pour échanger des informations connues uniquement de vous deux. Par exemple, votre clé privée c’est « ma couleur préférée » et votre clé publique c’est « bleu ». Votre ami il ne connait que « bleu ». A l’inverse vous ne connaissez qu’une chose de lui c’est « carré ». Vous ne savez pas à quoi ça correspond mais c’est carré.

Lorsque vous parlez ensemble, la première chose que vous faîtes c’est de lui dire « bleu ». Il vous reconnaît. Ensuite lui vous dit « carré » et vous le reconnaissez. S’il vous répond « rond » vous coupez la conversation.

Votre clé privée, alias « ma couleur préférée », elle sert à décrypter les informations qui passent entre vous.

Résumons :

Première connexion :

Le client doit déposer sa clé publique sur le serveur. Ceci doit être fait en étant préalablement authentifié autrement que par ssh, bien sûr. Soit par identifiant / mot de passe, soit lors de la création de la machine.

Connexions suivantes :

La clé publique présente sur le serveur permet à celui-ci de comparer la clé publique stockée avec la clé publique renvoyée au moment de la demande de connexion. SI elles correspondent, on considère que le client est authentique.

Commandes utiles

ssh-keygen

Cette commande génère sur la machine courante une paire de clés publique et privée.

ssh-keygen

ssh-copy-id

Cette commande permet de copier votre clé publique sur le serveur distant. Une fois que ce sera fait, vous n’aurez plus besoin de mot de passe !

La commande est la suivante :

ssh-copy-id user@ip
ssh-copy-id -f -i macle.pub user@ip

Commentaires

Laisser un commentaire

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