it-swarm-pt.tech

Como remover a verificação estrita de chave RSA no SSH e qual é o problema aqui?

Eu tenho um servidor Linux que, sempre que eu conecto, mostra a mensagem que mudou a chave do host SSH:

$ Raiz ssh @ Host1 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@ AVISO: A IDENTIFICAÇÃO DO host remoto foi alterada! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ IT IS POSSÍVEL QUE ALGUÉM IS FAZENDO ALGO DESAGRADÁVEL!) Alguém poderia estar lhe escutando agora (man-in Também é possível que a chave do host RSA tenha sido 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: adicione a chave do host correta em /home/emerson/.ssh/known_hosts para se livrar dessa mensagem. Chave ofensiva em/home/emerson/.ssh/unknown_hosts: 377

A chave do host RSA para o Host1 foi alterada e você solicitou uma verificação rigorosa. Falha na verificação da chave do host.

Isso me mantém por alguns segundos conectados e depois fecha a conexão.

Host1: ~/.ssh # Ler do host remoto host1: Redefinição da conexão pelo ponto A conexão com o Host1 foi fechada.

Alguém sabe o que está acontecendo e o que eu poderia fazer para resolver esse problema?

45
setatakahashi

Por favor, não exclua todo o arquivo known_hosts, conforme recomendado por algumas pessoas, isso anula totalmente o objetivo do aviso. É um recurso de segurança para avisar que um homem no ataque do meio pode ter acontecido.

Sugiro que você identifique por que acha que algo mudou, provavelmente uma atualização do SSH alterou as chaves de criptografia devido a uma possível falha de segurança. Você pode remover essa linha específica do seu arquivo known_hosts:

sed -i 377d ~/.ssh/known_hosts

Este d elimina a linha 377, como mostrado após os dois pontos no aviso:

/home/emerson/.ssh/known_hosts:377

Como alternativa, você pode remover a chave relevante fazendo o seguinte

ssh-keygen -R 127.0.0.1 (obviously replace with the server's IP)

NÃO limpe o arquivo inteiro e verifique se esta é realmente a máquina à qual você deseja se conectar antes de limpar a chave específica.

71
Adam Gibbins

Acho que, embora algumas das respostas aqui abordem o curso de ação recomendado na pergunta do OP, ela 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 recomendado por alguns outros, uma alteração 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/allowed_keys com um sed embutido.

No entanto, eu não vi nenhuma resposta abordar a parte específica da pergunta "Como remover a verificação estrita da chave RSA no SSH".

Você pode remover a verificação do StrictHostKey no seu arquivo de configuração ssh, normalmente armazenado em ~/.ssh/config.

Um exemplo de bloco Host é fornecido abaixo:

Host 101
  HostName yourip|hostname
  User youruserid
  IdentityFile /path/to/keyfile
  Port 22
  StrictHostKeyChecking no

A linha adicionada especificamente é a última StrictHostKeyChecking no que faz exatamente o que 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.

27
Joel G Mathew

Outra maneira de remover StrictHostKeyChecking, quando você só precisa fazer isso para um único servidor:

ssh <server> -o StrictHostKeyChecking=no
11
Greg Dougherty

Primeiro de tudo, esta é a sua máquina? Você mudou conscientemente as chaves do host? Caso contrário, eu ficaria muito preocupado com o fato de algo ter alterado esses dados.

Em segundo lugar, aumente a depuração ssh,

ssh -vvv [email protected]

e veja o que isso indica, tente também procurar/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 raiz?

5
Dave Cheney

Como o 'Host' [definido em termos gerais, pode ser tudo, de 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á fornecendo a você erro.

Não é necessário desativar a verificação rigorosa, nem é sensível a exclusão por atacado de chaves salvas.

É bem possível ter duas chaves diferentes listadas em known_hosts para um nome de host ou endereço IP específico; dando a você duas alternativas, dependendo de você achar que pode precisar da chave 'antiga' que está atualmente armazenada em

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 as duas coisas, evitando a exclusão de chaves em known_hosts, é

  1. Edite known_hosts para adicionar # no início da entrada 'antiga' referenciada em known_hosts [@ l377] temporariamente
  2. Conecte [ssh ao host], aceite o prompt para adicionar a nova chave 'automaticamente'
  3. Em seguida, edite o unknown_hosts para remover o #

mais respostas em "Adicione a chave correta do host em hosts_conhecidos"/várias chaves ssh do host por nome do host?

3
Mark

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 artigo agradável em Proteção de chave do host SSH .

Apenas remova a chave (usando SFTP ou similar) do servidor, editando o $HOME/.ssh/known_hosts e aceite o novo na próxima conexão.

Sua conexão pode estar caindo devido à configuração StrictHostKeyChecking. Veja este tópico para um problema semelhante.

3
user1797