Ottenere SHA1 Digest della chiave pubblica SSH

Sembra che questo dovrebbe essere facile. Ho eseguito "sshkeygen -l -f" (il valore predefinito sembra essere SHA1). Tutti gli esempi mostrano che printingre il digest formato esadecimale con un po 'di informazioni extra, innocue. Eppure, sul mio Mac ho una string inutile e opaca.

Vorrei ricordare che il parametro "-E" funziona su Mac (10.10) ma non è disponibile in Ubuntu (14.04). Tener presente che se non funziona per te.

$ ssh-keygen -l -E md5 -f dustin.pem 2048 MD5:29:ed:da:d3:5a:8c:78:4f:62:d3:fd:0c:77:5b:6d:d9 dustin.pem.pub (RSA) $ ssh-keygen -l -E sha1 -f dustin.pem 2048 SHA1:x2ENPL+vzVdlgkIyu0tAhVQ+H4U dustin.pem.pub (RSA) $ ssh-keygen -l -E sha256 -f dustin.pem 2048 SHA256:agJs/axI8QPzet/eoPMDxLSf37fd1bgsMX4Di0gqMy4 dustin.pem.pub (RSA) 

Entrambi i tentativi di algoritmi SHA restituiscono opache, ma diverse stringhe ASCII.

Che cosa mi manca? Come faccio ad get un hex-digest SHA1 senza wherer copiare la chiave in un sistema Linux per farlo?

Grazie.

  • Non posso ssh in un server remoto quando esaurisce la memory anche se lo swap non è completamente utilizzato
  • Come assegnare un nome host al tunnel SSH
  • Come impostare l'autenticatore google e impostare regole specifiche di corrispondenza per consentire diverse regole di accesso?
  • molti utenti di ssh in una casa
  • Reindirizzamento del traffico SSH per i contenitori LXC
  • inoltrare la port 3306 dalla macchina firewall al desktop utilizzando SSH?
  • ssh: può ancora utilizzare la password dopo aver impostato la chiave
  • Imansible accedere al server Linux dopo aver ripristinato la password di root
  • 2 Solutions collect form web for “Ottenere SHA1 Digest della chiave pubblica SSH”

    Tradizionalmente OpenSSH ha mostrato (pubbliche) le impronte digitali usando MD5 in esagono, o opzionalmente come 'ASCII art' o 'bubblebabble' (una serie di sciocchezze ma pronunciabili lettere a cinque lettere); 6.8 di marzo 2015 ha aggiunto opzioni per SHA1 e SHA256 in (PEMstyle) base64 , con quest'ultimo ora il default, e in tutti e tre i casi il nome hash prefisso in modo da sapere che è. ssh-keygen -l ha l'opzione -E solo da allora, e Ubuntu 14.04 è data da prima di marzo 2015.

    Non è necessario disporre di un digest SHA1 in esagono per la verifica di un host, in quanto il client ssh non visualizza mai questo solo MD5 esadecimale o SHA1-base64 (non per impostazione predefinita) o SHA256-base64. Se lo vuoi comunque, potete farlo abbastanza facilmente tranne un tasto 'rsa1' e avresti dovuto smettere di usare il protocollo SSHv1 e quindi i tasti rsa1 prima che Barack Obama diventasse Presidente degli Stati Uniti.

    Prendi la baseball 'blob' da

    • field 2 di id_$alg.pub o file simile, o output di ssh-keygen -y
    • field 3 della row nel file known_hosts less che non disponga di un segnalino quindi field 4
    • field 2 della row nel file authorized_keys less che non disponga di opzioni quindi field 3

    e convertirlo da base64 a binario, hash che con il hash desiderato e visualizzare nella rappresentazione desiderata. Poiché openssl per default visualizza gli hash in esagono e può convertire da (e) a base64, si potrebbe fare qualcosa di simile

     awk '{$print $2}' id_xxx.pub | openssl base64 -d -A | openssl sha1 

    Si noti la -A ; altrimenti openssl silenziosamente non riesce a decodificare base64 più di 76 caratteri e blobs pubblici OpenSSH tranne ed25519 sono più lunghi.

    Si noti inoltre che è ansible indicare un nuovo client ssh per visualizzare la vecchia impronte -o FingerprintHash=MD5 con -o FingerprintHash=MD5 o un'impostazione equivalente ssh_config .

    Quelle stringhe appaiono hashes codificate base64 .

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.