33 votes

Quel est le SHA256 qui apparaît sur l'entrée sshd dans auth.log ?

Lorsque l'on se connecte via ssh, on peut voir ce qui suit dans auth.log :

Dec 14 16:29:30 app sshd[22781]: Accepted publickey for dev from XXX.XXX.XX.XXX port XXXXX ssh2: RSA SHA256:pO8i...

J'ai essayé de comprendre ce qu'est cette information SHA256, mais je n'ai rien trouvé qui semble correspondre. J'ai d'abord pensé qu'il pouvait s'agir d'informations provenant du client (clé publique, empreinte digitale, nom d'hôte haché, etc.) à partir duquel je me connecte, mais je n'ai rien trouvé pour le confirmer, ni du côté du serveur.

L'information la plus proche que j'ai trouvée est aquí mais je n'ai pas compris quand il est dit "Et voici un exemple utilisant une clé pour l'authentification. Il montre l'empreinte kewy (une faute d'orthographe, probablement) comme un hachage SHA256 en base64", puisque je n'ai pas trouvé d'empreinte de clé correspondante d'aucune sorte.

Merci.

55voto

Raceimaztion Points 2703

C'est le SHA256 pour la clé publique RSA qui a été utilisée pour authentifier la session SSH.

Voici comment le vérifier :

ssh-keygen -lf .ssh/id_rsa.pub

Ou, pour vérifier sans ssh-keygen :

  • Retirer le ssh-rsa préfixe
  • Décoder la clé en octets en utilisant base64
  • Obtenez le SHA256 hachage de la clé (en octets, pas en hexadécimal)
  • Encodez les octets en utilisant base64

Par exemple :

cat .ssh/id_rsa.pub    |
    awk '{ print $2 }' | # Only the actual key data without prefix or comments
    base64 -d          | # decode as base64
    sha256sum          | # SHA256 hash (returns hex)
    awk '{ print $1 }' | # only the hex data
    xxd -r -p          | # hex to bytes
    base64               # encode as base64

4voto

stoutyhk Points 31

J'ai eu la même question sur macOS 10.13.6, où votre réponse a juste nécessité quelques ajustements :

cat .ssh/id_rsa.pub    |
    awk '{ print $2 }' | # Only the actual key data without prefix or comments
    base64 -D          | # decode as base64
    shasum -a 256      | # SHA256 hash (returns hex)
    awk '{ print $1 }' | # only the hex data
    xxd -r -p          | # hex to bytes
    base64               # encode as base64

Merci beaucoup.

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