openssh client usa o nome dado pelo usuário para autenticar um servidor no arquivo known_hosts. o nome pode ser letras ou endereço IP.
No primeiro caso, ele é comparado com a entrada do Host em ssh_config e, se a entrada do Host tiver o nome do HostName, ela será usada para verificar o arquivo known_hosts. Se a entrada do Host correspondente não tiver nenhum HostName, as letras fornecidas pelo usuário no cli serão verificadas no arquivo known_hosts.
Neste último caso, o endereço IP é verificado. Assim, um único host pode ter várias entradas para cada string correspondente de caracteres fornecidos pelo usuário. Isso acontece porque o usuário pode se conectar por ip, fqdn, uma entrada de host no arquivo ssh_config ou apenas um prefixo dns. Quando os usuários se referem à mesma máquina de maneira diferente, o aviso geralmente aparece.
O aviso acima diz que o host é desconhecido. Isso significa que o cliente não se conectou a este host antes com este nome ou o cliente se conectou a esse host antes com este nome , mas a 'chave host' do host não foi armazenado em cache ou armazenado em cache e a chave armazenada em cache foi removida enquanto isso ou o cache foi corrompido ou removido.
Se você se conectou a esse host com example.com e armazenou em cache a chave do host do servidor anteriormente, na próxima vez que se conectar ao host com example.com e se a chave do servidor for diferente da cache, o cliente gritaria como identificação do host remoto mudou , possível monkey-in-the-middle-attack .
Os servidores openssh usam quatro tipos de chaves rsa, dsa, ecdsa e ed25519. Isso significa que o cliente deve armazenar todas as chaves com as quais está confortável.
O banco de dados de impressão digital de chaves do servidor deve ser construído para lidar com situações como esta. ssh-keygen -lf ssh_host_rsa_key.pub >> $HOME/example.com_host_key.txt
para cada chave.