No último mês, decidi atualizar o servidor onde o Our Code World está atualmente hospedado para um servidor genuinamente melhor. Como sempre faço, adquiri o novo servidor e comecei a configurá-lo a fim de migrar os dados do servidor antigo. Depois de um tempo, fui ao painel de administração do servidor em seu site para remover o arquivo de chave raiz antigo e notei que o datacenter onde o servidor estava localizado não estava na América, mas na França. O datacenter escolhido estava errado, então pedi um novo servidor na américa. Após a implantação, instalei o novo sistema operacional, mas instalei a versão errada do Ubuntu (16 ao invés de 18.04), então limpei mais uma vez o serverð¤£. Depois de verificar finalmente que tudo que eu instalei a versão certa do Ubuntu, tentei acessar o servidor via SSH, para minha surpresa mais uma vez, acabei com outro erro:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!Someone could be eavesdropping on you right now (man-in-the-middle attack)!It is also possible that the RSA host key has just been changed.The fingerprint for the RSA key sent by the remote host isXX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XXPlease contact your system administrator.Add correct host key in /root/.ssh/known_hosts to get rid of this message.Offending key in /root/.ssh/known_hosts:5RSA host key for :22 has changed and you have requested strict checking.Host key verification failed.
O problema é causado porque você está se conectando a um servidor onde você estava conectado anteriormente, mas cujo host RSA mudou desde a última vez que você se conectou a ele (eu me conectei à primeira versão do servidor com Ubuntu 16.04 e depois tentei me conectar ao mesmo servidor com Ubuntu 18.04 e a exceção apareceu). A fim de evitar qualquer quebra de segurança, você precisará remover esta chave do arquivo known_hosts
de sua máquina local para se conectar corretamente.
A. Remova manualmente a chave ofensiva
Bem, apagar o ficheiro conhecido_hosts é uma solução válida desde que não se preocupe em ter de confirmar sempre que se ligar a algum servidor que a impressão digital é válida, por isso não apague o ficheiro known_hosts
. A solução mais fácil é simplesmente remover a linha com o problema no ficheiro, no nosso caso a mensagem de excepção avisou-nos que a chave ofensiva está na linha #5:
>
Add correct host key in /root/.ssh/known_hosts to get rid of this message.Offending key in /root/.ssh/known_hosts:5
Por isso só precisaria de remover a linha, usando um único comando como este (substitua 5 pelo número da sua linha):
sed -i '5d' ~/.ssh/known_hosts
E é tudo. Alternativamente, modifique o ficheiro known_hosts
usando um editor de terminal como o nano ou vim e remova a linha por si mesmo.
B. Usando ssh-agent
Alternativamente, você pode usar a ferramenta ssh-keygen para simplesmente remover a chave ofensiva se você sabe o hostname/ip:
ssh-keygen -R <SERVER_IP_OR_HOSTNAME> -f ~/.ssh/known_hosts
Isto também deve funcionar para remover o aviso de aparecer no terminal.
Código Feliz ❤️!