Vérification des fingerprint SSH

Sommaire

Index

Première connexion à SSH

Authenticité de l’hôte

Lors de la première connexion, le client indique qu’il ne peut authentifier l’hôte.

$ ssh laurent@192.168.21.164
The authenticity of host '192.168.21.164 (192.168.21.164)' can't be established.
ECDSA key fingerprint is SHA256:AWEa0Hd+1k0GAzuemRfaLs+CzPIgXXJ9DaoONx6zhZM.
Are you sure you want to continue connecting (yes/no)?

Cette étape est importante pour assurer la sécurité du SI

Vérification de la clef du serveur

En effet, pour authentifier le serveur, il lui demande de déchiffrer avec sa clef publique une chaîne générée aléatoirement par le client.

Seul le serveur correspondant la clé privée correspondante pourra déchiffrer cette chaîne.

Challenge

Attaque Man-In-the-Middle

Lors d’une attaque Man-In-the-Middle, un attaquant va monter un serveur pour tenter de récupérer les login/mot de passe d’un utilisateur (qu’il pourrait utiliser pour attaque le serveur authentique).

Le serveur aura la même adresse IP que le serveur cible (pour tenter de tromper le client)

Challenge

Vérification des empreintes du serveur

Affichage sur le serveur

Pour connaître les empreintes des clés du serveur, il faut être connecté directement sur le serveur (ou à distance par une connexion authentifiée précédemment)

Selon la clef à afficher:

ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub

Pour toutes les clefs du serveur:

ssh-keyscan localhost 2> /dev/null | ssh-keygen -l -f -

Ou:

echo  /etc/ssh/*.pub | xargs -n 1 ssh-keygen -lf

Source

Et aussi (source)

Affichage hexadécimal

Si l’empreinte à comparer ressemble à cette forme:

a7:b1:3e:3d:84:24:a2:5a:91:5f:6f:e9:cf:dd:2b:6a

Ajouter l’option -E md5:

ssh-keygen -l -E md5 -f ssh_host_ecdsa_key.pub

Clefs Github

GitHub’s SSH key fingerprints - GitHub Docs

À ne pas faire

Ne pas suivre les instructions données ici : https://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html