Cos'è lo SHA256 che arriva sulla voce sshd in auth.log?


20

Quando si accede tramite ssh, si può vedere quanto segue su 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...

Ho cercato di capire quali sono queste informazioni SHA256, ma non sono riuscito a trovare nulla che sembra corrispondere. Per prima cosa ho pensato che potrebbero essere alcune informazioni dal client (chiave pubblica, impronta digitale, nome host con hash ecc.) Da cui mi sto connettendo, ma non ho trovato nulla per confermare, né sul lato server.

Le informazioni più vicine che ho trovato sono qui , ma non ho capito quando dice "Ed ecco un esempio che usa una chiave per l'autenticazione. Mostra l'impronta digitale kewy (un errore di ortografia, probabilmente) come hash SHA256 in base64." , poiché non ho trovato un'impronta digitale chiave corrispondente di alcun tipo.

Grazie.

Risposte:


27

Questo è l' SHA256hash per la chiave pubblica RSA che è stata utilizzata per autenticare la sessione SSH.

Ecco come verificarlo:

ssh-keygen -lf .ssh/id_rsa.pub

Oppure, per verificare senza ssh-keygen:

  • Rimuovi il ssh-rsaprefisso
  • Decodifica la chiave in byte utilizzando base64
  • Ottieni l' SHA256hash per la chiave (come byte, non esadecimale)
  • Codifica i byte usando base64

Per esempio:

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

11
Si scopre che puoi usaressh-keygen -lf .ssh/id_rsa.pub
Joshua Griffiths il

2
Penso che il tuo commento sia una risposta migliore a tutto tondo, che dovresti aggiungere separatamente.
Hugh W,

1
+1 all'aggiunta ssh-keygen -lf .ssh/id_rsa.pubcome risposta separata. È meglio della codifica manuale.
Ilya Bobyr,

2

Aveva la stessa domanda su macOS 10.13.6, in cui la tua risposta aveva solo bisogno di un paio di modifiche:

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

Grazie v. Molto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.