Afficher l'empreinte d'une clé en MD5 avec OpenSSH

Pourquoi MD5 n'est plus utilisé par défaut ?

Avant OpenSSH 6.8, l'algorithme de hashage pour les clés était MD5 et le format textuel d'affichage était l'hexadécimale (avec des ":" pour faciliter la lecture). MD5 n'est plus considéré comme sûr, c'est pourquoi il a été décidé de changer de fonction de hashage.

OpenSSH 6.8 remplace MD5 par SHA256 (de la famille SHA-2). Un empreinte MD5 fait 128 bits (soit 16 octects), alors qu'une empreinte SHA256 en fait 256 (soit 32 octects), c'est-à-dire le double. Avec un même format textuel d'affichage, cela aurait été 2 fois plus long. Or une empreinte d'une fonction de hashage n'est pas quelque chose de rigolo à lire et il peut être pratique d'utiliser un (émulateur de) terminal de petite taille. Le format textuel d'affichage pour SHA256 est donc en base64.

Forcer l'usage de MD5

Il est possible que vous n'ayez l'empreinte de la clé qu'en MD5. Si vous le pouvez, il est conseillé de demander l'empreinte en SHA256 ou une autre fonction de hashage réputée sûre.

Forcer l'usage de MD5 via la ligne de commande

Pour une utilisation unique, il y a une option en ligne de commande. C'est -o FingerprintHash=md5. Elle s'utilise ainsi : ssh -o FingerprintHash=md5 example.org.

Via cette méthode, vous pouvez rendre l'usage de MD5 permanent. En effet, il suffit de faire un alias de la commande ssh : alias ssh='ssh -o FingerprintHash=md5'. Pour avoir ce comportement à chaque nouveau processus de votre shell texte favori, il faut lui indiquer dans un de ses fichiers de configuration. Pour GNU Bash, cela peut être dans "~/.bashrc" (pour l'utilisateur actuel ou l'utilisatrice actuelle) ou "/etc/bash.bashrc" (pour tous les utilisateurs et utilisatrices).

Forcer l'usage de MD5 via un fichier de configuration

Pour forcer l'usage de MD5 dans tous les cas, vous pouvez modifier un fichier de configuration (comme "~/.ssh/config").