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.

  • La copia su SSH tramite strumenti di Putty è più lenta che tramite WinSCP
  • Come colbind un nodo isolato a un nodo pubblico tramite tunnel SSH
  • Come si connette a ssh con una chiave pubblica differente?
  • CentOS ignora la mia chiave pubblica
  • Come fermare SSH dalla caduta alla password?
  • Perché sshd impegna PAM ancora?
  • $ 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.

  • Come posso eseguire mongod in background su unix (mac osx)?
  • nohup vs schermo vs? per avviare manualmente i processi daemon
  • Linux: process di background collegato alla window terminal
  • Running Subversion post-commit hook come un process di background
  • Spostare un process in esecuzione in background e mantenerlo in esecuzione anche se si disconnette
  • Come submit il process in esecuzione allo background?
  • 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.