OpenSSH no Ubuntu 16.04 mostra chaves ECDSA em um formato incomum

2

Eu estou tentando SSH para o meu servidor, e o cliente está perguntando sobre a autenticidade do host.

ECDSA key fingerprint is SHA256:bla bla bla

Com todas as versões do OpenSSH que usei, as chaves ECDSA (ou RSA) foram mostradas como

a7:3h:75:5d:si:9v:3g...

No Ubuntu 16.04 eles estão sendo mostrados como

c2ymd4uGIG3y34R78BcrykBVT...

Eu tenho outra maneira de acessar o servidor e estou tentando verificar a impressão digital executando ssh-keygen -lf ssh_host_ecdsa_key.pub . Mas isso gera algo como 2048 a7:3h:75:5d:si:9v:3g... . Mesmo ignorando os dois pontos, eles não combinam. Eu não posso ser 100% positivo isso não é por causa de um ataque MITM, mas é altamente improvável.

Como posso verificar as assinaturas de chaves? Todas as soluções que encontrei parecem lidar com uma versão diferente de ssh-keygen , embora eu não consiga descobrir qual versão eu tenho ou o que os outros têm.

    
por Nateowami 28.06.2016 / 08:52

2 respostas

3

Você pode usar ssh -o FingerprintHash=md5 user@host para usar hashes MD5 da antiga escola ou armazená-lo em ~/.ssh/config :

FingerprintHash md5

O seu servidor provavelmente está usando a versão antiga do openssh que não suporta novos hashes sha256.

    
por Jakuje 28.06.2016 / 14:04
1

Embora a resposta aceita resolva o problema de forçar os clientes mais recentes a mostrar hashes MD5, isso não resolve especificamente o problema de forçar um servidor a mostrar sua impressão digital com uma função hash específica ao calcular impressões digitais no servidor. Para esclarecer um pouco, ao verificar impressões digitais, você precisa corresponder ao mostrado no cliente com o valor real no servidor. @ Resposta de Jakuje lida com a obtenção do cliente para usar uma função de hash diferente, esta resposta lida com a obtenção do servidor para mostrar-lhe o hash usando uma função de hash diferente. Não importa se você altera o servidor ou a função hash do cliente, apenas para que sejam os mesmos.

Para encontrar a impressão digital de um host, nesse host, execute:

# Works with the version of OpenSSH on 16.04 but not 14.04
# (on 14.04 I have OpenSSH_6.6.1p1; on 16.04 it's OpenSSH_7.2p2)
# Check your version with with 'ssh -V'
ssh-keygen -l -E md5 -f ssh_host_ecdsa_key.pub
cd /etc/ssh

É claro que você pode alterar md5 para qualquer função de hash suportada e talvez seja necessário alterar ssh_host_ecdsa_key.pub dependendo do tipo de chave que você está usando (por exemplo, ssh_host_rsa_key.pub ).

    
por Nateowami 26.09.2016 / 12:48