Tenho um servidor Linux que sempre que conecto me mostra a mensagem que alterou a chave do host SSH:
$ ssh root@host1 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@ @ AVISO: A IDENTIFICAÇÃO DO HOST REMOTO MUDOU! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ É POSSÍVEL QUE ALGUÉM ESTÁ FAZENDO ALGO DESAGRADÁVEL! Alguém pode estar espionando você agora (ataque man-in-the-middle)! Também é possível que a chave do host RSA tenha acabado de ser alterada. A impressão digital da chave RSA enviada pelo host remoto é 93:a2:1b:1c:5f:3e:68:47:bf:79:56:52:f0:ec:03:6b. Entre em contato com o administrador do sistema. Adicione a chave de host correta em /home/emerson/.ssh/known_hosts para se livrar desta mensagem. Chave incorreta em /home/emerson/.ssh/known_hosts:377
A chave de host RSA para host1 foi alterada e você solicitou uma verificação rigorosa. Falha na verificação da chave do host.
Ele me mantém por alguns segundos logado e depois fecha a conexão.
host1:~/.ssh # Leitura do host remoto host1: Conexão redefinida pelo peer Conexão com host1 fechada.
Alguém sabe o que está acontecendo e o que posso fazer para resolver esse problema?
Por favor, não exclua todo o arquivo known_hosts como recomendado por algumas pessoas, isso anula totalmente o ponto do aviso. É um recurso de segurança para avisá-lo de que um ataque de homem no meio pode ter acontecido.
Sugiro que você identifique por que ele acha que algo mudou, provavelmente uma atualização de SSH alterou as chaves de criptografia devido a uma possível falha de segurança. Você pode então limpar essa linha específica do seu arquivo known_hosts:
Isso exclui a linha 377 conforme mostrado após os dois pontos no aviso:
Alternativamente, você pode remover a chave relevante fazendo o seguinte
Por favor, NÃO limpe o arquivo inteiro e certifique-se de que esta seja realmente a máquina à qual você deseja se conectar antes de limpar a chave específica.
Acho que, embora algumas das respostas aqui abordem o curso de ação recomendado na pergunta do OP, isso não responde totalmente à pergunta.
A pergunta afirma "Como remover a verificação estrita de chave RSA no SSH e qual é o problema aqui?"
O problema aqui é, como aconselhado por alguns outros, uma mudança no host provavelmente devido à reinstalação do servidor (cenário mais comum). E a solução recomendada é realmente remover a chave incorreta do arquivo .ssh/authorized_keys com um sed embutido.
No entanto, não vi nenhuma resposta abordando a parte específica da pergunta " Como remover a verificação estrita de chave RSA no SSH ".
Você pode remover a verificação StrictHostKey em seu arquivo de configuração ssh, normalmente armazenado em
~/.ssh/config
.Um exemplo de bloco Host é fornecido abaixo:
A linha especificamente adicionada é a última
StrictHostKeyChecking no
que faz exatamente isso. Dependendo do seu cenário específico, isso pode ser útil para você, como executar vários contêineres virtualizados em um servidor dedicado, em apenas alguns ips, parar e iniciar outra instância no mesmo ip.Outra maneira de remover StrictHostKeyChecking, quando você só precisa fazer isso para um único servidor:
Em primeiro lugar, esta é a sua máquina? Você alterou conscientemente as chaves do host? Se não, eu ficaria muito preocupado que algo tenha alterado esses dados.
Em segundo lugar, ative a depuração ssh,
e veja o que isso lhe diz, também tente procurar em /var/log/secure e /var/log/messages no servidor ao qual você está tentando se conectar para obter pistas, o sshd fornece boas mensagens de erro.
Em terceiro lugar, esta máquina está conectada à internet? Você realmente deveria permitir logins de root?
Você está recebendo isso porque algo mudou (como nova NIC, novo IP, alteração no software do servidor, etc). O foco de segurança tem um bom artigo sobre proteção de chave de host SSH .
Basta remover a chave (usando SFTP ou similar) do servidor, editando o
$HOME/.ssh/known_hosts
arquivo, e aceitar a nova na próxima conexão.Sua conexão pode estar caindo devido à configuração StrictHostKeyChecking. Veja este tópico para um problema semelhante.
Como o 'host' [definido de forma ampla, pode ser tudo, desde uma reinstalação / inicialização múltipla a um computador totalmente diferente com um endereço IP ao qual você se conectou antes, por exemplo] parece que o cliente ssh mudou, está dando a você a erro.
Não é necessário desativar a verificação estrita, nem é sensato a exclusão em massa de chaves salvas.
É bem possível ter duas chaves diferentes listadas em known_hosts para um determinado nome de host ou endereço IP; dando-lhe 2 alternativas de acordo com se você acha que pode precisar da chave 'antiga' que está atualmente armazenada em known_hosts
Exclua a chave específica à qual está se referindo, em l377 de known_hosts para o OP, ou mantenha ambos
A maneira mais simples de manter ambos, evitando a exclusão de chaves em known_hosts, é
mais respostas em "Adicionar chave de host correta em known_hosts" / várias chaves de host ssh por nome de host?