Was ist der SHA256, der im sshd-Eintrag in auth.log enthalten ist?

19

Wenn Sie sich über ssh anmelden, wird auf auth.log Folgendes angezeigt:

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

Ich habe versucht herauszufinden, was diese SHA256-Informationen sind, aber ich konnte nichts finden, was zu passen scheint. Zuerst dachte ich, es könnten einige Informationen vom Client sein (öffentlicher Schlüssel, Fingerabdruck, gehashter Hostname usw.), von dem aus ich eine Verbindung herstelle, aber ich habe weder auf der Serverseite etwas zur Bestätigung gefunden.

Die nächsten Informationen, die ich gefunden habe, sind hier , aber ich habe sie nicht verstanden, als dort steht: "Und hier ist ein Beispiel für die Verwendung eines Schlüssels zur Authentifizierung. Es zeigt den kewy-Fingerabdruck (wahrscheinlich ein Rechtschreibfehler) als SHA256-Hash in base64." , da ich keinerlei Schlüsselfingerabdruck gefunden habe.

Danke.

Márcio Jales
quelle

Antworten:

27

Dies ist der SHA256Hash für den öffentlichen RSA-Schlüssel, der zur Authentifizierung der SSH-Sitzung verwendet wurde.

So überprüfen Sie es:

ssh-keygen -lf .ssh/id_rsa.pub

Oder um zu überprüfen, ohne ssh-keygen:

  • Entfernen Sie das ssh-rsaPräfix
  • Dekodieren Sie den Schlüssel in Bytes mit base64
  • Holen Sie sich den SHA256Hash für den Schlüssel (als Bytes, nicht hexadezimal)
  • Codieren Sie die Bytes mit base64

Zum Beispiel:

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
Joshua Griffiths
quelle
11
Es stellt sich heraus, dass Sie verwenden könnenssh-keygen -lf .ssh/id_rsa.pub
Joshua Griffiths
2
Ich denke, Ihr Kommentar ist eine separate und rundum bessere Antwort, die Sie separat hinzufügen sollten.
Hugh W
1
+1 zum Hinzufügen ssh-keygen -lf .ssh/id_rsa.pubals separate Antwort. Es ist besser als die manuelle Codierung.
Ilya Bobyr
2

Hatte die gleiche Frage unter macOS 10.13.6, wo Ihre Antwort nur ein paar Verbesserungen benötigte:

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

Vielen Dank.

stoutyhk
quelle