Eu reinstalei meu servidor e estou recebendo estas mensagens:
[user@hostname ~]$ ssh root@pong
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
6e:45:f9:a8:af:38:3d:a1:a5:c7:76:1d:02:f8:77:00.
Please contact your system administrator.
Add correct host key in /home/hostname /.ssh/known_hosts to get rid of this message.
Offending RSA key in /var/lib/sss/pubconf/known_hosts:4
RSA host key for pong has changed and you have requested strict checking.
Host key verification failed.
Eu tentei várias soluções que encontrei na Internet. Meu known_hosts
arquivo (normalmente em ~/.ssh/known_hosts
) está em /var/lib/sss/pubconf/known_hosts
. Eu tentei editá-lo, mas ele permanece em um estado. Instalei o ipa-client e tenho o Fedora 19. Como resolvo este aviso?
Todas as respostas respondidas até agora funcionam apenas se você não tiver o Freeipa instalado.
A resposta certa para freeipa nos comentários abaixo de adrin está aqui .
ssh
verification
ipa
man-in-the-middle
Filip Dobrovolný
fonte
fonte
Respostas:
Aqui está a solução mais simples
Por exemplo,
Na
ssh-keygen
página do manual :-R hostname
Remove todas as chaves pertencentes ao nome do host de um arquivo known_hosts. Esta opção é útil para excluir hosts com hash (consulte a opção -H acima).fonte
ssh-keygen -R [127.0.0.1]:3022
. Basta verificar o seu arquivo .ssh / known_hosts pelo que diz explicitamente.Usar
O exemplo com um endereço IP / nome de host seria:
Isso atualizará as ofensas do seu host a partir de known_hosts. Você também pode fornecer o caminho do known_hosts com o sinalizador -f.
fonte
$ ssh-keygen -R {server.name.com}
|$ ssh-keygen -R {ssh.server.ip.address}
|$ ssh-keygen -R server.example.com
Ocorreu o mesmo erro após recriar uma imagem do Digital Ocean Ubuntu. Eu usei o seguinte comando com o IP do meu servidor no lugar de
[IP_ADDRESS]
fonte
Quando você reinstalar o servidor, sua identidade muda e você começará a receber esta mensagem. O Ssh não tem como saber se você alterou o servidor ao qual ele se conecta ou se um servidor intermediário foi adicionado à sua rede para detectar todas as suas comunicações - portanto, isso chama a sua atenção.
Simplesmente remova a chave de known_hosts excluindo a entrada relevante:
O
4d
é por conta deOffending RSA ...known_hosts:4
fonte
sed -i -e 4d /var/lib/sss/pubconf/known_hosts
identification
no caso em que deseja reconstruir o servidor sem causar interrupções como esta mensagem de erro?A marreta é remover todos os hosts conhecidos de uma só vez:
Eu me deparo com isso porque usamos pequenas sub-redes de servidores de vida curta em uma caixa de salto e frequentemente temos a reutilização interna de endereços IP de servidores que compartilham a mesma chave ssh.
fonte
known_hosts
deve ser evitada). Faça isso apenas se tiver certeza de que todos os hosts estão seguros.O problema é que você aceitou anteriormente uma conexão SSH com um computador remoto e a impressão digital digital ou a chave de hash SHA256 do computador remoto foi alterada desde a última conexão. Portanto, quando você tenta fazer o SSH novamente ou usa o github para obter código, que também usa o SSH, você recebe um erro. Por quê? Porque você está usando o mesmo endereço de computador remoto como antes, mas o computador remoto está respondendo com uma impressão digital diferente. Portanto, é possível que alguém esteja falsificando o computador ao qual você se conectou anteriormente. Este é um problema de segurança.
Se você tem 100% de certeza de que o computador remoto não está comprometido, hackeado, falsificado, etc, tudo o que você precisa fazer é excluir a entrada do arquivo known_hosts do computador remoto. Isso resolverá o problema, pois não haverá mais incompatibilidade com os IDs de impressão digital SHA256 ao conectar.
No Mac, aqui está o que eu fiz:
1) Encontre a linha de saída que indica
RSA host key for servername:port has changed and you have requested strict checking.
Você precisará do nome do servidor e da porta potencial dessa saída de log.2) Faça backup do arquivo de hosts conhecidos SSH
cp /Users/yourmacusername/.ssh/known_hosts /Users/yourmacusername/.ssh/known_hosts.bak
3) Encontre a linha em que a impressão digital antiga do computador está armazenada e exclua-a. Você pode procurar a impressão digital incorreta do computador remoto usando o nome do servidor e a porta da etapa 1.
nano /Users/yourmacusername/.ssh/known_hosts
4) CTRL-X para sair e escolha Y para salvar as alterações
Agora digite
ssh -p port servername
e você receberá o prompt original que você fez quando tentou o SSH pela primeira vez nesse computador. Você terá a opção de salvar a impressão digital SHA256 atualizada desse computador remoto em seu arquivo known_hosts. Se você estiver usando SSH pela porta 22, o argumento -p não será necessário.Quaisquer problemas que você possa restaurar o arquivo known_hosts original:
cp /Users/yourmacusername/.ssh/known_hosts.bak /Users/yourmacusername/.ssh/known_hosts
fonte
ssh-keygen -R [IP_ADDRESS]
não funcionava para mim. Obrigado!Como muitos já disseram, use
ssh-keygen
, ou seja,Além disso, considere desativar temporariamente a verificação de chave do host:
fonte
Host ???? CheckHostIP no StrictHostKeyChecking no
(3 linhas, tabuladas a partir do 2º)Funciona para mim!
Isso indica que você tem uma chave RSA ofensiva na linha no. 4
Solução 1 :
Solução 2:
OU
Solução 3:
Isso removerá a
4th
linha do/root/.ssh/known_hosts
local (-i
).fonte
Usei a solução de mockinterface, embora o sed -i não funcionasse completamente, resolvi-o excluindo a linha manualmente com o vim:
Você pode usar qualquer outro editor de texto que desejar, mas provavelmente precisará mostrar seus privilégios administrativos
fonte
Para usuários de Mac, você pode usar o
-R
sinalizador dossh-keygen
comando. Exemplo rápido:THE_IP_ADDRESS
sendo o IP que você está tentando acessar. E então você pode se conectar bem.fonte
Isso ocorre porque as configurações do seu computador remoto foram alteradas. Remova suas chaves atuais para isso.
vim /root/.ssh/known_hosts
Exclua a linha do IP que você está conectando.
fonte
Edite
/home/hostname /.ssh/known_hosts
e exclua as 4 linhas e salve-as.Em seguida, execute
ssh root@pong
novamente, você verá uma mensagem como esta:Are you sure you want to continue connecting (yes/no)? yes
apenas imprimayes
.fonte
As outras respostas aqui são boas e funcionam, de qualquer maneira, resolvi o problema excluindo
~/.ssh/known_hosts
. Isso certamente resolve o problema, mas provavelmente não é a melhor abordagem.fonte
No meu caso, isso aconteceu porque eu tinha conexão ssh anteriormente com uma máquina com o mesmo ip (por exemplo, 192.152.51.10) e o sistema estava considerando a chave RSA (armazenada em /home/user_name/.ssh/known_hosts) do host anterior que resultou em incompatibilidade.
Para resolver esse problema, você deve remover a chave RSA armazenada anteriormente para o ip 192.152.51.10 .
fonte
Solução simples de uma linha, testada no mac:
Exclui apenas o IP do host ssh de destino dos hosts conhecidos.
onde 212.156.48.110 é substituído pelo endereço IP do host de destino.
Causa : ocorreu porque o IP de destino já era conhecido por uma máquina diferente devido ao encaminhamento de porta. A exclusão do IP de destino antes da conexão corrigirá o problema.
fonte
Use este comando:
fonte
Remova a entrada de known_hosts usando:
Isso removerá o IP ou nome do host problemático do arquivo known_hosts e tentará se conectar novamente.
Nas páginas do manual:
fonte
Apenas faça:
cd /home/user/.ssh/
-> aquiuser
será seu nome de usuário,/home/jon/
por exemplo.Então
gedit known_hosts &
e exclua o conteúdo dentro dele.Agora
ssh
, novamente, deve funcionar.fonte
Se você estiver tentando conectar-se ao contêiner do docker em execução na porta 2222 com o comando e obter o erro
Em seguida, para resolver esse problema, no seu computador local (por exemplo, máquina host, não contêiner), acesse
cd ~/.ssh/
e abra oknown_hosts
arquivo com o editor de texto. Remova a linha que começa com[localhost]:2222
e salve o arquivo. Agora tente ssh novamenteO erro desaparecerá, mas você precisará fazer isso sempre que o contêiner reiniciar.
fonte
Minha solução é:
vi ~/.ssh/known_hosts
Isso é melhor do que excluir todos os
known_hosts
fonte
Somente problema do lado do cliente (chave duplicada para ip):
Resolver variantes:
Para limpar um ip (porta padrão 22):
Para um ip ( porta não padrão ):
Limpar rapidamente todos os ips:
7.7.7.7 - ssh seu servidor ip connect
333 - porta não padrão
fonte
Às vezes, se por qualquer motivo, você precisar reinstalar um servidor, ao conectar pelo ssh, descobriremos que o servidor diz que a identificação foi alterada. Se sabemos que não é um ataque , mas que restabelecemos o sistema, podemos remover a identificação antiga dos known_hosts usando ssh-keygen:
Ao conectar novamente, solicitaremos que você valide a nova impressão digital:
fonte
Eu tive esse problema, e o motivo é muito simples, tenho um endereço IP duplicado para o login ssh, portanto, depois de modificar esse problema, tudo será resolvido.
fonte
Eu tive o mesmo erro na minha máquina e limpei o
known_hosts
arquivo e, depois disso, ele funcionou bem.fonte
authorized_keys
quando tiver um problema com oknown_hosts
arquivoSOLUÇÃO:
1- exclua de "$ HOME / .ssh / known_hosts" a linha referente ao host na qual é impossível conectar-se.
2- execute este comando: ssh-keygen -R "IP_ADDRESS ou HOSTNAME" (substitua "IP_ADDRESS ou HOSTNAME" pelo seu IP de destino ou nome do host de destino)
3- Tente novamente a conexão ssh (se falhar, verifique a permissão no diretório .ssh, deve ser 700)
fonte
Minha solução em UBUNTU (linux):
1.Você precisa excluir o conteúdo do arquivo "known_hosts", que está em "/home/YOUR_USERNAME/.ssh/known_hosts"
2. Gere uma nova chave ssh como "ssh-keygen -t rsa -C" [email protected] "-b 4096"
3.Copie e cole sua nova chave ssh no seu repositório git (gitlab no meu caso) chaves SSH.
Funciona para mim !
fonte
AWS EC2.
Encontre o ip na mensagem que ele fornece.
corre
Use as setas do teclado para encontrar o ip da mensagem e clique em.
Isso excluirá essa linha e executará escape
Isso vai economizar, então você está pronto para ir.
fonte