2012-04-08 11 views

risposta

76

Aspetta, l'ho trovato. Eseguire il comando:

ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub 
+3

Nota che questo computerà l'hash dell'impronta digitale nel formato preferito del tuo server os. A seconda del sistema operativo locale potrebbe essere necessario utilizzare il vecchio formato hash: ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ecdsa_key.pub Questo è necessario ad esempio quando si collega da ubuntu 12.04 a ubuntu 16.04 – Jeff

11

Con una recente SSH (OpenSSH_6.0p1, OpenSSL 1.0.0j 10 maggio 2012), ho sceneggiato in questo modo:

ssh-keyscan -t ecdsa localhost 2>&1 | grep ecdsa 
localhost ecdsa-sha2-nistp256 AAAAE2VlongKey...= 

Note:

  • se il tuo sshd funziona su una porta personalizzata, aggiungi "-p portNumber" al comando ssh-keyscan)
  • ssh-keyscan scrive su stderr, Non stdout (!), da qui il bash reindirizzamento '2>&1' (che può variare a seconda della vostra shell)

Quella è la linea ho aggiunto al mio file ~/.ssh/known_hosts al fine di autorizzare le richieste di ssh da localhost per il mio test (principalmente per gitolite, which uses ssh).


Daniel Böhmer conferma in the comments:

  • ssh-keyscan fornisce la chiave pubblica completa (s) del server SSH
  • l'uscita di ssh-keygen è quasi identica al formato dei file di chiave pubblica .
    Basta rimuovere la prima colonna (indirizzo IP o nome host) e salvarla o inserirla in ssh-keygen -l che presenta l'impronta digitale.
+1

Il la domanda riguarda * l'impronta digitale * della chiave. ssh-keyscan fornisce solo la chiave (pubblica). – aleb

+0

Infatti, 'ssh-keyscan' fornisce le chiavi pubbliche complete del server SSH. Ho una copia del suo output e ora voglio confrontarlo con l'impronta digitale mostrata da 'ssh' durante la prima connessione. Come farlo? –

+0

Ho appena scoperto: l'output di 'ssh-keygen' è quasi identico al formato dei file di chiave pubblica. Basta rimuovere la prima colonna (indirizzo IP o nome host) e salvarla o collegarla a 'ssh-keygen -l' che presenta l'impronta digitale. Mi piacerebbe ancora sapere come rendere 'ssh' visualizzare la chiave pubblica completa del server quando si chiede di confermarlo. –

5

Sul mio sistema ho bisogno di specificare una chiave MD5 invece del SHA256 default:

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

Questa uscita di una stringa in un formato che ha trovato l'errore che ho visto sul client.

+1

Il flag '-E' è stato introdotto in OpenSSH> 6.6, attorno al momento in cui si passa al fingerprinting SHA256 per impostazione predefinita.Pertanto, nei casi in cui il client visualizza impronte digitali SHA256, non può essere utilizzato per l'output di quel formato sul server. Un modo per aggirare questo: https://superuser.com/a/1030779 – tanius

Problemi correlati