A impressão digital é baseada na chave pública do host, geralmente baseada em "/etc/ssh/ssh_host_rsa_key.pub" Geralmente é para facilitar a identificação / verificação do host ao qual você está se conectando.
Se a impressão digital mudar, a máquina à qual você está se conectando alterou sua chave pública. Isso pode não ser uma coisa ruim (acontece na reinstalação do ssh), mas também pode indicar que você está se conectando a uma máquina diferente no mesmo domínio / IP (acontece quando você está se conectando através de algo como o balanceador de carga) ou que você estão sendo direcionados com um ataque man-in-the-middle, em que o invasor de alguma forma intercepta / redireciona sua conexão ssh para conectar-se a um host diferente que pode estar espionando seu usuário / pw.
Conclusão: se você for avisado sobre uma impressão digital alterada, tenha cuidado e verifique se está realmente se conectando ao host correto por uma conexão segura. Embora na maioria das vezes isso seja inofensivo, pode ser uma indicação de um possível problema
Veja: http://www.lysium.de/blog/index.php?/archives/186-How-to-get-ssh-server-fingerprint-information.html
e: http://en.wikipedia.org/ wiki / Public_key_fingerprint
~/.ssh/known_hosts
. Dessa forma, quando você se conectar ao servidor, seu cliente SSH reconhecerá esse servidor, desde que você salvou sua chave públicaknown_hosts
. Portanto, você nunca deve dizer "sim" quando o cliente SSH informar "A autenticidade do host não pode ser estabelecida". Você sempre deve adicionar a chave pública do servidor com antecedência.~/.ssh/known_hosts
arquivo com antecedência e nunca dizer sim quando o cliente SSH informar "A autenticidade do cliente não pode ser estabelecida" ou quando a mensagem "A chave pública do servidor tiver sido alterado ".Você pode gerar uma impressão digital para uma chave pública usando
ssh-keygen
o seguinte:Exemplo concreto (se você usar uma chave pública RSA):
A primeira parte
(2048)
é o comprimento da chave em bits, a segunda parte(00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff)
é a impressão digital da chave pública e a terceira parte é o local do próprio arquivo de chave pública.fonte
ssh-keygen -lf
que fará o que você deseja.ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
. Ele mostra a impressão digital que também é mostrada nos logins do SSH no host local.ssh-keygen
relatadassha256
. Para obtermd5
impressões digitais, corrissh-keygen -l -E md5 -f ~/.ssh/id_rsa.pub
. #archlinuxssh -o FingerprintHash=md5
ou o equivalente emssh_config
coisas que usamssh
comoscp
.A impressão digital é o MD5 sobre os dados binários da chave pública codificada em Base64.
O md5sum 6530389635564f6464e8e3a47d593e19 é a impressão digital exibida quando a chave é gerada, apenas sem os dois pontos de separação.
No entanto, se você estiver lidando com as impressões digitais mostradas pela Amazon no console do EC2 Key Pairs, infelizmente isso pode ser uma fera diferente . Se for uma sequência hexadecimal de 32 dígitos, é a impressão digital padrão da chave pública SS5 MD5 acima. Mas se tiver 40 dígitos hexadecimais, na verdade é uma impressão digital calculada usando o SHA1 da chave privada no formato PKCS # 8:
fonte
awk '{print $2}' /path/to/keyfile.pub
ou similar.cat id_rsa.pub | cut -d' ' -f2 | base64 -d | md5sum
Se você deseja verificar um arquivo de chave SSH para ver se é o mesmo que é relatado como "Chave de implantação" pelo github, este é para você ...
Na URL privada: https://github.com/<username>/<repo_name>/settings/keys, você verá
No terminal:
Você notará que obtém a mesma impressão digital para as chaves pública e privada.
Esse mesmo comando pode ser combinado com um recurso interessante do GitHub, que é o fato de que eles veiculam publicamente as chaves públicas SSH dos usuários em https://github.com/<username>.keys
Aqui está uma lista que você pode usar para tirar vantagem disso.
fonte
Produzirá as impressões digitais de todas as chaves públicas configuradas em uma instância sshd.
Eles podem ser colocados nos registros DNS SSHFP .
fonte