59 votes

obtenir l'empreinte de la clé SSH au (ancien) format hexadécimal sur la nouvelle version d'openssh

Il semble qu'openssh ait changé la façon dont il affiche les empreintes des clés.

J'essaie d'effectuer un ssh depuis une machine cliente vers un serveur :

  • client : ubuntu 14.04 exécutant OpenSSH 6.6.1
  • serveur : FreeBSD utilisant OpenSSH 7.2p2.

Le client rapporte le hachage md5 de la clé du serveur sous la forme d'une séquence de 16 paires de chiffres hexadécimaux, comme ceci :

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

Le serveur utilise par défaut le hachage sha256, mais grâce à l'outil cette réponse Je peux le forcer à donner le hachage sha1 en exécutant :

[root@host /etc/ssh]# ssh-keygen -l -E sha1 -f ssh_host_ecdsa_key.pub

Je veux que le résultat ressemble à ceci :

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

mais à la place j'obtiens ceci :

256 SHA1:KIh0ejR4O+RqrSq7JdGAASddRfI root@host.local (ECDSA)

Il me semble qu'une version codée en base64 de l'empreinte digitale est maintenant affichée au lieu des chiffres hexadécimaux.

Comment puis-je obtenir la somme de contrôle de la clé du serveur dans le même format que celle rapportée par le client (plus ancien) (chiffres hexagonaux séparés par deux points, hachage sha1) afin de vérifier qu'elles sont identiques ?

EDIT : L'ancienne version de SSH donne le md5 checksum, no la somme de contrôle sha1 comme je le pensais par erreur. L'utilisation de cette somme de contrôle (comme la réponse maintenant acceptée devrait l'indiquer) dans l'option -E donne le résultat souhaité.

83voto

Jakuje Points 9351

Le client rapporte le hachage sha1 de la clé du serveur sous la forme d'une séquence de 16 paires de chiffres hexadécimaux, comme ceci :

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

C'est le hachage MD5.

Comme vous pouvez le constater, l'exécution

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

vous permettra d'obtenir la même empreinte digitale que celle dont vous avez besoin sans ce harakiri que vous expliquez dans votre réponse.

7voto

thrashr888 Points 665

Il s'avère que le Livre de recettes SSH a un moyen de générer manuellement des clés dans l'ancien format hexagonal. Je l'ai utilisé sur le serveur freebsd.

awk '{print $2}' key.pub | base64 -d | md5 | sed 's/../&:/g ; s/. : .*$//'

En décomposant ça :

awk '{print $2}' key.pub

imprimer la deuxième colonne (séparée par des espaces) de "key.pub", qui est la clé elle-même

base64 -d

la clé est encodée en base64. Cela donnera les octets réels de la clé.

md5

c'est l'équivalent pour freebsd de 'md5sum -b' qui était spécifié dans la recette sur la page du livre de cuisine ssh

sed 's/../&:/g ; s/ : .*$//'

Il y a deux commandes sed ici :

s/../&:/g ;

remplace chaque paire de caractères sur la ligne (grâce à l'indicateur 'g' à la fin) par cette même paire suivie d'un deux-points.

s/ : .*$//'

supprimer les deux-points de fin de ligne (remplacer un deux-points suivi d'un espace suivi de n'importe quoi jusqu'à la fin de la ligne par rien).

7voto

rpr Points 588

Dans des cas comme celui-ci, j'utilise le petit script suivant (testé sur Debian et Ubuntu) :

#!/bin/sh

# Gather the public ssh host keys for the given host
# and for each key print the fingerprint in hex format using the given
# checksum command (e.g. md5sum, sha256sum, ...)

if [ "$#" != 2 ]; then
  echo "usage: $0 hostname checksum_command"
  exit 1
fi

ssh-keyscan $1 2>/dev/null | while read -r line; do
  echo "Scanned key:"
  echo $line
  echo "$2 fingerprint:"
  echo $line | awk '{print $3}' | base64 -d | $2 -b | awk '{print $1}' | sed 's/../&:/g' | sed 's/:$//'
  echo
done

Exemple d'utilisation :

$ myscript host.example.com md5sum
Scanned key:
host.example.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJUXq7vpcEpnZQxxiLw/tdg8ui4LoqbW1O5nGyLtGw49
md5sum fingerprint:
6c:ef:26:f7:98:ad:ed:5b:cc:ff:83:13:46:c9:f6:79

Scanned key:
host.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC4aLMajBvisnWNR2VX5K1KEkNeRmzlcs+svbY6/DiumMTZNtqB5duZjGkMmEbIclHaT7rQG9efAWsNhai5cJVRZ4VX1Gu/TLycEk4OY56MrrWjQYweSUr/W6E0eVCf7gh/ym2vMcevct4373fGDdlogk9Wa97lDV6PUXRy/znxRlo3tBc6KMOZIBoPu8UjeLr2ZPNPjO6hXX/96HbYfboxjhMl5eb8AWR0MGd4qU7RZZa2XhT4/4eSo8h9gEq8V3tasB24fMdw3K+HRiDyZm8uoNq+IrJlC22pBpzxRQtsv0Nd+uC5pK/UPVI3AFfdHMrmn7IHRio8aEaTloM6MRysGMtXE0kFQ/pV2U3TBmK/9wxID83qMDsQeUH4oTyjSJ0dCBuqgVQUg44z5qXVOK7gruvZSTyH7DsIyAXhlvLNwdtXPJ4HPQ90ZxLpiFWYgSPErQgbfgKeFkoSQiSP1M+UMkITCGRKMeUeDINheRJh/5y8+C3DjE54xyI4903ztyI7HqgVTOOFCtf+dlhCuS6+J20PFXEHDMdGCwmPQrKOG9Rb4NBxuvtn7MxJnwnlIu3nhDjr8SlZDOTvuK+bLpc4AZwEsNY7ANKFvj2mqE6hjkhu+x7khg84VQ6BKOmHIQnMrCpqICaNgB7Vz2d183BETrnfKQaPh79G5cQox5vwvw==
md5sum fingerprint:
b2:9c:cd:30:b1:38:e3:d1:17:d6:73:eb:03:9a:80:83

$ myscript host.example.com sha256sum
Scanned key:
host.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC4aLMajBvisnWNR2VX5K1KEkNeRmzlcs+svbY6/DiumMTZNtqB5duZjGkMmEbIclHaT7rQG9efAWsNhai5cJVRZ4VX1Gu/TLycEk4OY56MrrWjQYweSUr/W6E0eVCf7gh/ym2vMcevct4373fGDdlogk9Wa97lDV6PUXRy/znxRlo3tBc6KMOZIBoPu8UjeLr2ZPNPjO6hXX/96HbYfboxjhMl5eb8AWR0MGd4qU7RZZa2XhT4/4eSo8h9gEq8V3tasB24fMdw3K+HRiDyZm8uoNq+IrJlC22pBpzxRQtsv0Nd+uC5pK/UPVI3AFfdHMrmn7IHRio8aEaTloM6MRysGMtXE0kFQ/pV2U3TBmK/9wxID83qMDsQeUH4oTyjSJ0dCBuqgVQUg44z5qXVOK7gruvZSTyH7DsIyAXhlvLNwdtXPJ4HPQ90ZxLpiFWYgSPErQgbfgKeFkoSQiSP1M+UMkITCGRKMeUeDINheRJh/5y8+C3DjE54xyI4903ztyI7HqgVTOOFCtf+dlhCuS6+J20PFXEHDMdGCwmPQrKOG9Rb4NBxuvtn7MxJnwnlIu3nhDjr8SlZDOTvuK+bLpc4AZwEsNY7ANKFvj2mqE6hjkhu+x7khg84VQ6BKOmHIQnMrCpqICaNgB7Vz2d183BETrnfKQaPh79G5cQox5vwvw==
sha256sum fingerprint:
f4:61:58:e4:90:65:c4:70:98:7f:d1:40:0a:d8:d9:79:14:e6:91:dc:b6:ed:91:8c:c0:df:d9:65:db:dd:a0:18

Scanned key:
host.example.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJUXq7vpcEpnZQxxiLw/tdg8ui4LoqbW1O5nGyLtGw49
sha256sum fingerprint:
4b:73:d1:d7:80:87:46:64:56:71:64:10:7a:66:83:9b:c7:58:39:0b:16:74:dd:9b:d9:4b:e5:d5:61:7e:99:45

0voto

FabricioFCarv Points 109

Ssh -o FingerprintHash=md5 user@host...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X