SSH Várias linhas para a mesma chave pública em known_hosts?


0

Recentemente, depois de algum tempo, tentei entrar no meu servidor ssh na LAN e recebi este aviso:

$ ssh user@local.server.hostname
Warning: Permanently added the RSA host key for IP address '192.168.1.4' to the list of known hosts.

Dei uma olhada no seguinte post no SO: https://stackoverflow.com/questions/9299651/warning-permanently-added-to-the-list-of-known-hosts-message-from-git Mas eu não ' acho que isso se deve ao cliente ssh que não verifica o known_hostsarquivo (acho que ele verifica no meu caso e não estou executando o Windows).

Aqui está o known_hostsarquivo e descobri que tenho duas linhas da mesma chave pública, mas nomes de host / IPs diferentes:

$ cat ~/.ssh/known_hosts
local.server.hostname,192.168.1.3 ssh-rsa ...Here it goes the public key...
192.168.1.4 ssh-rsa ...Here it goes the same public key (as for the local.server.hostname,192.168.1.3 entry above)...

Estou certo de que as duas chaves públicas são iguais (verifiquei a impressão digital de ambas com o comando echo "here I pasted the public key" | base64 -D | md5que executei para cada entrada de known_hosts). Caso contrário, eu teria visto um "AVISO: A IDENTIFICAÇÃO DO HOST REMOTA FOI MUDADA".

Agora, eu tenho uma rede local com DHCP, então o servidor recebe um IP e, às vezes, um outro.

Eu acho que esse é o principal motivo pelo qual recebi esse aviso: o IP do servidor foi alterado (de 192.168.1.3, primeira linha de unknown_hosts, para 192.168.1.4), mas como a chave pública permaneceu a mesma e a chave pública já era confiável para o meu cliente ssh porque já havia uma entrada para local.server.hostname,192.168.1.3in known_hosts, o cliente ssh me mostrou o aviso, mas adicionou a entrada para 192.168.1.4sem solicitar confirmação.

Isso está correto? A única coisa que vem à mente é: por que o cliente adicionou outra entrada em vez de apenas modificar a já existente, como da seguinte maneira:

local.server.hostname,192.168.1.3,192.168.1.4 ssh-rsa ...public key...

Por que duas entradas para a mesma chave pública?

Respostas:


2

De fato, o motivo é o seu ambiente DHCP que atribuiu um novo endereço IP ao seu servidor.

Sempre que o ssh se conectar a um endereço IP que não possui em seu known_hostsarquivo, ele reagirá de acordo com a sua StrictHostKeyCheckingconfiguração, 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 tenta corresponder / atualizar nenhuma chave conhecida para o novo endereço IP (o que provavelmente seria considerado um risco de segurança). Daí as diferentes linhas que correspondem a diferentes endereços IP na mesma chave do host.

Se o servidor DHCP agora atribuir o endereço antigo a outro servidor e você tentar ssh, provavelmente terá uma chave de host diferente e a conexão ssh será recusada. Para evitar esses casos, convém verificar se é possível alternar para endereços IP atribuídos estaticamente (alguns servidores DHCP oferecem suporte aos próprios mapeamentos estáticos, sem alterações nos clientes).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.