Eu tenho um servidor (vamos assumir que seu ip seja abcd) que permite que os usuários efetuem login via ssh. Agora quero trocar a maquina fisica mantendo o mesmo ip. Para que a nova máquina ainda seja acessada por um usuário como este
$ ssh abcd
O problema é que toda vez que um usuário tenta fazer login, ele recebe o seguinte erro de incompatibilidade de chave ssh.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @ AVISO: A IDENTIFICAÇÃO DO HOST REMOTO FOI MUDADA! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ É POSSÍVEL QUE ALGUÉM ESTÁ FAZENDO ALGO DESAGRADÁVEL! Alguém pode estar te espionando agora (ataque man-in-the-middle)! Também é possível que a chave do host RSA tenha sido alterada. A impressão digital da chave RSA enviada pelo host remoto é 02: dc: c6: 18: 1b: 34: b7: 1d: fa: 90: ab: e1: 95: 48: 69: 84. Entre em contato com o administrador do sistema. Adicione a chave do host correta em /home/user/.ssh/known_hosts para se livrar dessa mensagem. Chave incorreta em /home/user/.ssh/known_hosts:37 A chave de host RSA para ex-alunos mudou e você solicitou uma verificação rigorosa. Falha na verificação da chave do host.
Eu sei que o usuário pode excluir a linha # 37 do arquivo ~ / .ssh / known_hosts e da próxima vez que receber um prompt de sim / não. O que eu quero é que o usuário fique ciente de toda essa substituição da máquina e obtenha uma solicitação de senha.
Como fazer isso?
ssh
a única proteção contra ataques de homens no meio e poderia resultar no envio de sua senha diretamente ao atacante, em vez da máquina pretendida? A menos que você saiba que é invulnerável a ataques ativos (por exemplo, você está na mesma rede interna segura que a máquina de destino), isso destróissh
o modelo de segurança.Respostas:
Como Ethabell mencionou, você pode copiar as chaves do host atual para o novo servidor.
Você pode encontrar as chaves do seu host abrindo seu
sshd_config
arquivo (na minha caixa do Ubuntu 12.04/etc/ssh/sshd_config
). No arquivo de configuração, procure asHostKey
entradas. Essas entradas informarão onde os arquivos de chave do host estão localizados. Você poderá copiar esses arquivos para o novo servidor e atualizar os novossshd_config
para apontar para as chaves copiadas (ou simplesmente substituir os arquivos que já existem no novo servidor).Além disso, observe esta seção na
sshd_config
página de manual, especificamente na parte sobre permissões:fonte
Se você tivesse a chave do host original, poderia restaurá-la e isso interromperia o erro.
Ou você pode desativar o StrictHostKeyChecking no seu arquivo de configuração sshd.
... Fazer isso, no entanto, é uma péssima ideia. Se existe uma maneira de você rodar
ssh-keygen -R server.example.com
em máquinas clientes, essa seria a melhor maneira - porque desativar a verificação de chave do host é como dizer: "Ei, me ataque." Sinto falta de obscuridade quando as coisas mudam, mas a segurança deve ser a prioridade número 1 em detrimento das mudanças ocultas.fonte
Você pode tentar assim
Observe que, se a pasta .ssh ainda não existir, o comando acima falhará. Além disso, pode ser melhor ao criar o arquivo para definir uma permissão mínima possível (basicamente leitura e gravação apenas para o proprietário). Aqui está um comando mais avançado:
Para obter mais informações sobre esse problema, acesse este site: Erro de alteração de chave do host SSH
fonte