De fato, o motivo é o ambiente DHCP que atribuiu um novo endereço IP ao seu servidor.
Sempre que o ssh se conecta a um endereço IP que não possui em seu arquivo known_hosts
, ele reagirá de acordo com seu StrictHostKeyChecking
config, consulte man ssh_config
:
StrictHostKeyChecking
If this flag is set to “yes”, ssh(1) will never automatically add host keys to the ~/.ssh/known_hosts file,
and refuses to connect to hosts whose host key has changed. This provides maximum protection against trojan
horse attacks, though it can be annoying when the /etc/ssh/ssh_known_hosts file is poorly maintained or when
connections to new hosts are frequently made. This option forces the user to manually add all new hosts. If
this flag is set to “no”, ssh will automatically add new host keys to the user known hosts files. If this
flag is set to “ask”, new host keys will be added to the user known host files only after the user has con-
firmed that is what they really want to do, and ssh will refuse to connect to hosts whose host key has
changed. The host keys of known hosts will be verified automatically in all cases. The argument must be
“yes”, “no”, or “ask”. The default is “ask”.
Como você vê, o ssh não faz nenhuma tentativa de combinar / atualizar quaisquer chaves conhecidas para o novo endereço IP (o que provavelmente seria considerado um risco de segurança). Daí as diferentes linhas que combinam endereços IP diferentes com a mesma chave de host.
Se o servidor DHCP agora atribuísse o endereço antigo a outro servidor e você tentasse ssh, provavelmente teria uma chave de host diferente e a conexão ssh seria recusada. Para evitar esses casos, você pode querer verificar se pode alternar para endereços IP atribuídos estaticamente (alguns servidores DHCP oferecem suporte para os próprios mapeamentos estáticos, sem alterações nos clientes).