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

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

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 comparei com a saída de ssh-keygen -lf /etc/ssh/ssh_host_dsa_keyand ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub, e ela não corresponde a nenhuma delas.

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 | sha1sume 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)

Chave de host desconhecida para<nome do host>

e estados

O servidor é desconhecido. A impressão digital da chave do host é<16 octetos>. (Permitir) (Negar) [] Sempre

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 ao usuário remoto possui 16 octetos separados por dois pontos, portanto não parece usar SHA-224 ou algo superior.Atualizar: Acabei de notar que mesmo um hash SHA-1 terá 20 octetos, então a impressão digital exibida aparentemente não está em nenhum formato SHA.

Em última análise, a conexão vai para o servidor correto, porque posso ver a tentativa de login nos logs do meu servidor se o usuário permitir a conexão. Portanto, parece que o nome/IP do host foi 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 da do primeiro servidor).

Se eu tentar me conectar ao servidor usando OpenSSH de algum outro host (ou localmente do próprio servidor), será exibida 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 OpenSSH padrão.

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

Responder1

Se for a primeira vez que eles se conectaram, não importa se há uma incompatibilidade... o cliente tinha apenas alguma entrada antiga não relacionada que tinha o mesmo nome de host ou endereço IP associado a ela. Basta limpar com:

ssh-keygen -R $name_or_ip

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

ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key

Responder2

Acontece que o programa FTP em uso não era o Transmit, mas sim o Cyberduck 4.5.1. O problema da impressão digital errada já era conhecido comoImpressão digital errada da chave do host. A atualização para a versão mais recente corrigiu esse problema e a impressão digital exibida agora está correta.

informação relacionada