O que poderia causar uma incompatibilidade de impressão digital da chave de host SFTP?

4

Um usuário remoto tentou se conectar ao meu servidor SFTP / SSH pela primeira vez, usando o cliente "Transmit" no Mac OS X, e descobriu que a impressão digital da chave do host não corresponde ao valor esperado.

Eu tenho uma captura de tela da impressão digital exibida e a comparei com a saída de ssh-keygen -lf /etc/ssh/ssh_host_dsa_key e ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub , e ela não corresponde a nenhuma dessas impressões.

Eu também comparei sem sucesso a impressão digital com a saída de cut -d ' ' -f 2 < /etc/ssh/ssh_host_dsa_key.pub | base64 -d | sha1sum e cut -d ' ' -f 2 < /etc/ssh/ssh_host_rsa_key.pub | base64 -d | sha1sum (porque parece que existem diferentes algoritmos de impressão digital em uso?).

A caixa de mensagem no lado do cliente é intitulada (traduzida para o inglês)

Unknown host key for < hostname >

e estados

The server is unknown. The fingerprint of the host key is < 16 octets >. ( Allow ) ( Deny ) [ ] Always

Portanto, não há indicação se a chave RSA ou DSA é usada, ou se o MD5 ou algum algoritmo SHA é usado para criar a impressão digital.

A impressão digital exibida para o usuário remoto tem 16 octetos separados por dois pontos, de modo que não parece usar o SHA-224 ou algo maior. Update : Eu notei que até um hash SHA-1 terá 20 octetos, então a impressão digital exibida não está em nenhum formato SHA aparentemente.

A conexão vai para o servidor correto, porque eu posso ver a tentativa de login nos logs do meu servidor se o usuário permitir a conexão. Portanto, parece que o nome do host / IP é inserido corretamente no lado do cliente.

Uma conexão com outro servidor SFTP (completamente não relacionado) também mostra uma impressão digital incorreta (mas diferente do primeiro servidor).

Se eu tentar conectar-me ao servidor usando o OpenSSH de algum outro host (ou localmente do próprio servidor), mostrarei a impressão digital correta (a impressão digital MD5 para a chave do host RSA).

O servidor está executando o Debian 6 LTS com o servidor padrão OpenSSH.

O que poderia causar essa incompatibilidade de impressões digitais? Como posso depurar este problema?

    
por oliver 11.10.2015 / 19:09

2 respostas

2

Acontece que o programa FTP em uso não foi Transmitir, mas foi o Cyberduck 4.5.1. O problema com a impressão digital errada já era conhecido como Impressão digital da chave de host errada . A atualização para a versão mais recente corrigiu esse problema e a impressão digital exibida está correta.

    
por 18.10.2015 / 12:01
4

Se é a primeira vez que eles se conectam, não importa se há uma incompatibilidade ... o cliente tinha apenas uma entrada antiga não relacionada que, por acaso, tinha o mesmo nome de host ou endereço IP associado a ela. Basta limpá-lo com:

ssh-keygen -R $name_or_ip

Depois de fazer isso, certamente deve dizer se é RSA, ECDSA, etc. da próxima vez que você se conectar. Se não, tente usar um cliente adequado como o OpenBSD OpenSSH client, que é padrão no Linux, ou tente -v (ou -vvvv, etc. opções detalhadas). E, em seguida, verifique e aceite a nova chave. O principal formato de impressão digital em clientes antigos é md5 (e em novos é sha256, em algum formato estranho de base64 em vez de ascii-hex), e o jeito certo de obter a impressão digital no lado do servidor é:

ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
    
por 15.10.2015 / 13:54