Posso conectar-me a outra máquina Ubuntu na minha LAN via SSH. Nos dois PCs, instalei o openssh-server, mas a partir de outro computador Ubuntu, não consigo conectar ao meu PC via SSH e recebi este erro:
Falha na verificação da chave do host ...
Posso conectar-me a outra máquina Ubuntu na minha LAN via SSH. Nos dois PCs, instalei o openssh-server, mas a partir de outro computador Ubuntu, não consigo conectar ao meu PC via SSH e recebi este erro:
Falha na verificação da chave do host ...
ssh
da linha de comando.Respostas:
"Falha na verificação da chave do host" significa que a chave do host do host remoto foi alterada.
O SSH armazena as chaves do host dos hosts remotos em
~/.ssh/known_hosts
. Você pode editar esse arquivo de texto manualmente e remover a chave antiga (você pode ver o número da linha na mensagem de erro) ou usarNa página do manual :
(que aprendi com a resposta para É possível remover uma chave de host específica do arquivo known_hosts do SSH? ).
fonte
rm ~/.ssh/*
, entãossh -o BatchMode=yes root@somewhere
, se nada mais estiver errado, ireiHost key verification failed.
Não é importante se você estiver sempre interativo, mas relevante para scripts que encontrarem o mesmo erro.ssh-keygen -R example.net:7999
produzHost example.net:7999 not found in known_hosts
.known_hosts
arquivo e o ssh novamente. Funcionou.~/.ssh/known_hosts
está ilegívelSe você estiver executando em determinadas situações remotas / de script em que não possui acesso interativo à chave de prompt para adicionar host, contorne-a da seguinte maneira:
Aviso: Adicionado permanentemente 'something.example.com, 10.11.12.13' (RSA) à lista de hosts conhecidos.
fonte
sh """ssh -o StrictHostKeyChecking=No ec2-user@someIpAddress-e2e sudo service tomcat restart"""
Às vezes, também há situações em que você está trabalhando no console serial, e a verificação do comando acima no modo detalhado
-v
mostra que você/dev/tty
não existe, enquanto existe.No caso acima, basta remover
/dev/tty
e criar um link simbólico de/dev/ttyS0
para/dev/tty
.Como alternativa, adicione
id_rsa.pub
ao local remoto, para que a senha não seja solicitada e você obtenha acesso ao login.fonte
No meu caso, isso foi causado por um problema do udev - não havia
/dev/tty
nó do dispositivo. A solução para mim foi apenas:fonte
No terminal:
A seguinte mensagem, ou similar, aparecerá:
Em seguida, conecte-se ao seu EC2 normalmente:
fonte
command-line line 0: Bad yes/no/ask argument.
porque você erroneamente usar 'Não' em vez de 'não' como argumento paraStrictHostKeyChecking
Bem, é simplesmente porque o segundo ubuntu requer conexão por chave e não por senha.
Eu sugiro que você use
sudo dpkg-reconfigure openssh-server
no seu PC, e então ele deve funcionar corretamente. Ele redefinirá a configuração do openssh e deve retornar à autenticação de senha padrão.A segunda possibilidade é que já existe uma chave para o seu outro ubuntu no seu PC e que ela mudou, não sendo mais reconhecida. Nesse caso, você terá que editar o arquivo
.ssh/authorized_keys
para remover a linha problemática que identifica o seu ubuntu.fonte
Este é um tópico antigo e acabei de encontrar esta resposta, acrescentarei o que fiz para resolver isso.
Eu apenas olhei para a mensagem de erro que ele lançou para mim e disse para executar esse comando para removê-lo da lista de hosts. Depois disso, fiz o seguinte:
Depois, segui as instruções de lá até que eu consegui ssh no servidor.
fonte
Isso significa que sua chave do host remoto foi alterada (pode ser a alteração da senha do host),
Seu terminal sugeriu executar este comando como usuário root
Você precisa remover esse nome de host da lista de hosts no seu PC / servidor. Copie o comando sugerido e execute como usuário root.
Espero que isso funcione.
fonte
Você deve alterar sua chave desta maneira: No erro especificado, localize qual chave do host foi alterada, por exemplo: Chave ECDSA ofensiva em /Users/user-name/.ssh/known_hosts:5, a 5ª chave foi alterada, faça o seguinte:
Nota: você deve ser root ou ter privilégio para o sudo.
fonte
você deve colocar a chave rsa do host de destino no host de origem
/home/user/.ssh/known_hosts
executando isso no destinofonte
Pode ser que você só precise digitar "yes" quando o ssh confirmar que deseja continuar se conectando.
Como abaixo.
Em seguida, digite sua senha.
Por favor, preste atenção em "Tem certeza de que deseja continuar se conectando (sim / não)? Sim ". Você deve inserir sim, não entrar.
fonte
Além de desativar estritamente a verificação de chave do host, você também pode conectar-se digitando:
fonte
pico ~/.ssh/known_hosts
e exclua todas as linhas, depois de apenas reconectar e você receberá uma nova chave.fonte
ssh-keygen -R hostname
é melhor.Minha solução vem desta postagem no blog: Falha na negociação do algoritmo para o SSH Secure Shell Client
Você precisa modificar o arquivo da seguinte maneira:
E adicione o seguinte:
Basicamente, você tentou soluções diferentes até encontrar uma que possa resolver seu problema. Se as soluções acima não funcionarem, tente esta. Se este não funcionar tão bem, tente outros.
fonte
Basta fazer "sudo vi /var/root/.ssh/known_hosts" e remover a linha, que contém uma chave para um host ao qual você está tentando se conectar e reconectar novamente.
Não conheço sua situação específica, mas provavelmente esse erro veio com uma mensagem como esta:
Se você ler o registro com mais cuidado, verá que a chave que você obteve de um host está em conflito com a chave que você já possui - nesse caso, está na linha 74 do arquivo known_hosts (Chave ofensiva do ECDSA em / var / root / .ssh / unknown_hosts: 74). Remova a linha dos known_hosts, salve as alterações e reconecte.
fonte
é outra solução tty - às vezes, esse arquivo de dispositivo tem permissões incorretas.
fonte