Posso me conectar a outra máquina Ubuntu na minha LAN via SSH. Em ambos os então pc's eu instalei openssh-server mas de outro computador Ubuntu não consigo me conectar ao meu PC via SSH e recebi esse erro:
Falha na verificação da chave do Host...
Posso me conectar a outra máquina Ubuntu na minha LAN via SSH. Em ambos os então pc's eu instalei openssh-server mas de outro computador Ubuntu não consigo me conectar ao meu PC via SSH e recebi esse erro:
Falha na verificação da chave do Host...
"Falha na verificação da chave do Host" significa que o hospedar a chave do host remoto foi alterada.
SSH armazena as chaves 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 usar
ssh-keygen -R hostname
De página do homem:
- R nome do host
Remove todas as chaves pertencentes ao hostname de um arquivo known_hosts. Esta opção é útil para excluir hosts com hash .
(que aprendi com a resposta paraÉ possível remover uma chave host específica do arquivo known_hosts do SSH?).
Se você estiver executando em certas situações remotas / de script em que não tem acesso interativo à chave de prompt para adicionar host, contorne-a assim:
$ ssh -o StrictHostKeyChecking=no user@something.example.com uptime
Aviso: adicionado permanentemente "something.example.com, 10.11.12.13' (RSA) para a lista de hosts conhecidos.
Também às vezes há situação em que você está trabalhando no console serial e, em seguida, verificando o comando acima no modo detalhado -v
irá mostrar-lhe /dev/tty
não existe, enquanto isso acontece.
ssh -v user@hostname
No caso acima, basta remover /dev/tty
e criar um link simbólico de /dev/ttyS0
para /dev/tty
.
rm /dev/ttyln -s /dev/ttyS0 /dev/tty
Como alternativa, adicione id_rsa.pub
para o local remoto, portanto, a senha não é solicitada e você obtém acesso de login.
No meu caso, isso foi causado por um problema udev-não houve /dev/tty
nó do dispositivo. A solução para mim foi apenas:
sudo mknod -m 666 /dev/tty c 5 0
No terminal:
ssh -o StrictHostKeyChecking=no -i YourPublicKey.pem user@example.com uptime
A seguinte mensagem, ou similar, aparecerá:
Warning: Permanently added 'example.com, XX.XXX.XXX.XX' (ECDSA) to the list of known hosts. 00:47:37 up 3 min, 0 users, load average: 0.00, 0.00, 0.00
Em seguida, conecte-se ao seu EC2 normalmente:
ssh -i YourPublickey.pem user@example.com
Pode ser que você só precise inserir " Sim " quando o ssh confirmar que deseja continuar conectando.
Como abaixo.
The authenticity of host 'xxx' can't be established.ECDSA key fingerprint is yyy.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 'xxx' (ECDSA) to the list of known hosts.Enter passphrase for key '/Users/ysy/.ssh/id_rsa':
Em seguida, digite sua senha.
Por favor, preste atenção em " tem certeza de que deseja continuar conectando (sim/não)? Sim". Você deve inserir sim, não entrar.
você tem que colocar a chave rsa do host de destino no host de origem /home/user/.ssh/known_hosts
executando isso no alvo
ssh-keyscan -t rsa @targethost
Bem, simplesmente porque o segundo ubuntu requer conexão por chave e não 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 voltar a uma autenticação de senha padrão.
Segunda possibilidade é que já existe uma chave para o seu outro ubuntu em seu PC, e que mudou, portanto, não sendo mais reconhecido. Nesse caso, você terá que editar o arquivo .ssh/authorized_keys
para remover a linha problemática que identifica seu ubuntu.
Este é um tópico antigo e acabei de encontrar esta resposta, vou apenas adicionar o que fiz para resolver isso.
ssh-keygen -f "/home/USER/.ssh/known_hosts" -R HOSTNAME
Eu apenas olhei para a mensagem de erro que ele jogou em mim E disse para executar esse comando para removê-lo da lista de hosts. Depois disso, fiz o seguinte:
ssh-copy-id HOSTNAME
Do que eu segui as instruções de lá até que eu era capaz de ssh para o servidor.
Você deve alterar sua chave desta maneira: a partir do erro fornecido, localize qual chave do host mudou paraexample: ofendendo a chave ECDSA em / Users/user-name/.ssh / known_hosts: 5said 5ª chave alterada, então faça isso:
sed -i '5d' ~/.ssh/known_hosts
Aviso: você deve ser root ou ter privilégio para sudo.
Dó você usa nomes de host ou endereços IP?
Não é semelhante, mas recebi o mesmo erro, mas devido a um problema diferente: ubuntu - Managing multiple servers behind a firewall with SSH reverse tunnel - Server Fault
Este não é um problema específico do Ubuntu. Pode acontecer com qualquer ’ ssh ’ da linha de comando.