Qual é o equivalente do CentOS de ssh-keygen -E?

3

O cliente ssh está me perguntando se a impressão digital de um novo servidor está bem. Esta impressão digital é sha256.

O servidor ssh pode me informar sua impressão digital com

ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key

No entanto, isso está no formato md5.

A documentação de ssh-keygen diz que essa é a correção

ssh-keygen -l -E sha256 -f /etc/ssh/ssh_host_ecdsa_key

No entanto, a opção -E não parece estar disponível no CentOS. Eu posso compensar o cliente com

ssh -o FingerprintHash=md5 user@newserver
No entanto, uma boa prática dita que evitamos o md5 e simplificaria a automação e o fluxo de trabalho (testando em múltiplos ambientes / distribuições) se eu pudesse lidar com isso de maneira uniforme.

Como posso obter uma impressão digital sha256 da chave ssh no CentOS?

    
por spraff 12.09.2016 / 21:07

1 resposta

4

A versão do OpenSSH empacotada pelo CentOS é caminho muito antiga para este recurso.

A alternativa é usar sha256sum diretamente, pois a "impressão digital" é apenas um hash da chave bruta:

awk '{print $2}' foo.pub | base64 -d | sha256sum | xxd -p -r | base64

O hash MD5 pode ser obtido usando:

awk '{print $2}' foo.pub | base64 -d | md5sum

Ou, você pode pular toda a etapa de "impressão digital" e "confirmação manual" e simplesmente copiar a chave pública real no seu ~/.ssh/known_hosts . (Não se esqueça de adicionar o endereço IP na frente dele).

echo "192.168.1.2 $(cat foo.pub)" >> ~/.ssh/known_hosts

Dessa forma, a chave será pré-verificada, por assim dizer. Este parece ser um método fácil de automatizar.

    
por 13.09.2016 / 07:05