Como corrigir “Aviso: a identificação do host remoto foi alterada!”
Publicados: 2024-10-16- Compreendendo o aviso
- Verifique a identidade do servidor
- Solução 1: Remova a chave do host antigo manualmente (Windows, Mac, Ubuntu)
- Solução 2: limpe todo o arquivoknown_hosts (Windows, Mac, Ubuntu)
- Solução 3: Ignore temporariamente a verificação da chave do host (Windows, Mac, Ubuntu)
- Solução 4: adicione a nova chave de host manualmente (Windows, Mac, Ubuntu)
- Solução 5: verifique se há alterações de DNS ou endereço IP (Windows, Mac, Ubuntu)
- Melhores práticas para evitar esse problema no futuro (Windows, Mac, Ubuntu)
- Conclusão
Ao tentar se conectar a um servidor remoto usando SSH, você pode encontrar a mensagem de erro: “Aviso: a identificação do host remoto foi alterada!” . Esta mensagem é um recurso de segurança que o SSH usa para protegê-lo contra ataques man-in-the-middle, onde terceiros podem interceptar sua comunicação com o servidor.
Em termos simples, este aviso informa que a impressão digital do servidor (um identificador exclusivo armazenado em sua máquina local) não corresponde ao que o SSH registrou anteriormente. Pode ser uma alteração legítima, como a reinstalação do servidor ou a alteração do endereço IP, mas também pode sinalizar uma ameaça potencial à segurança. O SSH bloqueia a conexão para proteger seu sistema até que você verifique a autenticidade do servidor.
Neste artigo, veremos como resolver esse problema com segurança em sistemas Mac , Ubuntu (Linux) e Windows , garantindo que você possa continuar se conectando com segurança sem ignorar riscos potenciais.
Você pode estar interessado em ler: Como corrigir erro de permissão negada (Publickey)
Compreendendo o aviso
Por que o aviso aparece?
O SSH armazena uma impressão digital da chave do servidor remoto em um arquivo known_hosts
na sua máquina local. Essa impressão digital é usada para verificar se você está se conectando ao mesmo servidor sempre que usa SSH. Se a impressão digital do servidor mudar, o SSH mostrará o aviso porque não pode ter certeza se a identidade do servidor mudou legitimamente ou se alguém está tentando interceptar sua conexão.
Cenários comuns para o aviso:
- Reinstalação ou atualização do servidor: se o servidor tiver sido reinstalado, redefinido ou atualizado, ele poderá gerar uma nova chave SSH, que não corresponderá àquela armazenada em seu
known_hosts
. - Alteração do endereço IP: Se o endereço IP do servidor tiver sido alterado (por exemplo, devido à mudança para um novo provedor de hospedagem ou rede), o SSH poderá sinalizar isso como uma alteração suspeita.
- Alterações de DNS: Se houver atualizações ou configurações incorretas nos registros DNS do servidor, o SSH poderá interpretar isso como um servidor diferente.
- Alterações na configuração do servidor: às vezes, os administradores do servidor alteram a configuração da chave SSH, resultando em uma nova chave que não corresponde à anterior.
- Ameaça potencial à segurança (ataque man-in-the-middle): O aviso pode ser um sinal de que alguém está tentando interceptar sua conexão com o servidor. Se não tiver certeza sobre as alterações, é essencial verificar a identidade do servidor antes de continuar.
A função do known_hosts
:
O known_hosts
é onde o SSH armazena informações sobre hosts remotos aos quais você se conectou anteriormente. O arquivo normalmente está localizado no diretório ~/.ssh/
no Mac e Ubuntu e, para usuários do PuTTY no Windows, ele armazena chaves de host no Registro do Windows.
Verifique a identidade do servidor
Antes de fazer qualquer alteração, resolva a mensagem “A identificação do host remoto foi alterada! ”Aviso, é crucial verificar se a identidade do servidor mudou legitimamente. Esta etapa garante que você não seja vítima de um ataque man-in-the-middle.
Por que você deve verificar primeiro a identidade do servidor
Ignorar esta etapa pode resultar na conexão a um servidor comprometido ou malicioso, o que pode colocar seus dados ou credenciais em risco. Sempre leve esse aviso a sério, especialmente se não tiver certeza sobre as alterações recentes no servidor.
Etapas para verificar a identidade do servidor:
- Entre em contato com o administrador do servidor: se não for você quem mantém o servidor, entre em contato com o administrador ou provedor de hospedagem e pergunte se alguma alteração recente foi feita, como alteração de endereço IP, reinstalação do servidor ou regeneração de chave.
- Compare a impressão digital da chave do host: Use o seguinte comando para verificar manualmente a chave do host do servidor:
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
A saída mostrará a impressão digital da chave do host, que você pode comparar com aquela em seu
known_hosts
ou com a solicitação do administrador do servidor.
Solução 1: Remova a chave do host antigo manualmente (Windows, Mac, Ubuntu)
Para Mac e Ubuntu (Linux):
- Abra o terminal.
- Abra o arquivo
~/.ssh/known_hosts
usando um editor de texto:nano ~/.ssh/known_hosts
- Procure a linha que corresponde ao nome do host ou endereço IP do servidor remoto.
- Exclua a linha que contém a chave do host antiga.
- Salve o arquivo e feche o editor de texto.
- Reconecte-se ao servidor usando SSH:
ssh <username>@<hostname>
Remoção automatizada (Mac e Ubuntu):
Em vez de editar manualmente o known_hosts
, você pode usar o seguinte comando para remover a chave do host antiga automaticamente:
ssh-keygen -R <hostname or IP>
Para Windows (usando PuTTY):
- Abra o PuTTY .
- Pressione Windows + R , digite
regedit
e pressione Enter. - Navegue até o caminho do registro:
HKEY_CURRENT_USER\Software\Myusername\PuTTY\SshHostKeys
- Localize a entrada associada ao nome do host ou endereço IP do servidor remoto.
- Clique com o botão direito na entrada e selecione Excluir .
- Reconecte-se ao servidor no PuTTY e ele solicitará que você aceite a nova chave.
Para Windows (usando Git Bash):
- Abra o Git Bash .
- Execute o seguinte comando:
ssh-keygen -R <hostname>
- O SSH solicitará que você aceite a nova chave na próxima vez que se conectar.
Solução 2: limpe todo o known_hosts
(Windows, Mac, Ubuntu)
Para Mac e Ubuntu (Linux):
- Abra o terminal.
- Execute o seguinte comando para remover todo o
known_hosts
:rm ~/.ssh/known_hosts
- Reconecte-se ao servidor remoto usando SSH:
ssh <username>@<hostname>
Para Windows (usando PuTTY):
- Abra o PuTTY .
- Pressione Windows + R , digite
regedit
e pressione Enter para abrir o Editor do Registro . - Navegue para:
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
- Clique com o botão direito na pasta
SshHostKeys
e escolha Excluir . Isso removerá todas as chaves de host armazenadas. - Reconecte-se ao servidor usando PuTTY e você será solicitado a aceitar a nova chave de host.
Para Windows (usando Git Bash):
- Abra o Git Bash .
- Remova o
known_hosts
executando:rm ~/.ssh/known_hosts
- Ao se reconectar ao servidor usando SSH, você será solicitado a aceitar a nova chave do host.
Solução 3: Ignore temporariamente a verificação da chave do host (Windows, Mac, Ubuntu)
Se você precisar se conectar ao servidor rapidamente e não tiver tempo para remover chaves de host antigas manualmente, poderá ignorar temporariamente a verificação da chave de host. Embora esse método funcione com dificuldade, não é recomendado para uso regular , pois pode expô-lo a possíveis riscos de segurança.
Para Mac e Ubuntu (Linux):
ssh -o StrictHostKeyChecking=no <username>@<hostname>
Para Windows (usando Git Bash):
ssh -o StrictHostKeyChecking=no <username>@<hostname>
Para Windows (usando PuTTY):
- Abra o PuTTY .
- Navegue até Conexão > SSH > Chaves de host .
- Desative a verificação da chave do host selecionando Sempre aceitar .
- Reconecte-se ao servidor sem verificar a chave do host.
Solução 4: adicione a nova chave de host manualmente (Windows, Mac, Ubuntu)
Para Mac e Ubuntu (Linux):
ssh-keyscan -H <hostname> >> ~/.ssh/known_hosts
Para Windows (usando Git Bash):
ssh-keyscan -H <hostname> >> ~/.ssh/known_hosts
Para Windows (usando PuTTY):
Infelizmente, PuTTY não possui um equivalente direto para ssh-keyscan
. Para adicionar a chave do host manualmente, você precisará se conectar ao servidor e permitir que o PuTTY solicite a nova chave do host.
Solução 5: verifique se há alterações de DNS ou endereço IP (Windows, Mac, Ubuntu)
Para Mac e Ubuntu (Linux):
nslookup <hostname>
dig <hostname>
Para Windows (usando Git Bash):
nslookup <hostname>
dig <hostname>
Para Windows (usando PuTTY):
- Abra o prompt de comando ou PowerShell .
- Use o seguinte comando para verificar o DNS ou endereço IP:
nslookup <hostname>
- Compare o endereço IP na saída com o que o PuTTY mostra no registro.
- Se o endereço IP mudou, exclua a chave do host antigo do registro do PuTTY navegando para:
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
- Reconecte-se via PuTTY e você será solicitado a aceitar a nova chave.
Melhores práticas para evitar esse problema no futuro (Windows, Mac, Ubuntu)
- Use endereços IP estáticos: configure seus servidores com endereços IP estáticos para evitar alterações inesperadas que podem acionar o aviso.
- Limpe ou atualize
known_hosts
: Revise e limpe periodicamente chaves de host antigas ou obsoletas. - Considere o uso de certificados SSH: Use certificados SSH para gerenciamento escalonável de chaves de host, reduzindo as chances desse aviso.
- Monitore alterações de DNS ou IP: fique de olho nas alterações nos registros DNS ou endereços IP e atualize
known_hosts
de acordo.
Conclusão
A mensagem “A identificação do host remoto mudou!” warning é um recurso de segurança essencial no SSH que impede o acesso não autorizado, verificando a identidade de servidores remotos. Embora possa ser alarmante, é importante tomar as medidas necessárias para verificar a identidade do servidor antes de prosseguir com qualquer alteração.
Usando as soluções descritas neste artigo, você pode resolver o aviso com segurança, esteja você no Windows , Mac ou Ubuntu . Lembre-se sempre de verificar primeiro a autenticidade do servidor e depois escolher a solução que melhor se adapta à sua situação, seja removendo a chave de host antiga, limpando o known_hosts
ou ignorando a verificação temporariamente.
Além disso, seguir as práticas recomendadas, como usar endereços IP estáticos, atualizar known_hosts
e considerar certificados SSH, pode ajudar a minimizar a ocorrência desse problema no futuro.
Como um dos cofundadores da Codeless, trago para a mesa experiência no desenvolvimento de WordPress e aplicativos web, bem como um histórico de gerenciamento eficaz de hospedagem e servidores. Minha paixão por adquirir conhecimento e meu entusiasmo por construir e testar novas tecnologias me levam a inovar e melhorar constantemente.
Especialização:
Desenvolvimento Web,
web design,
Administração de Sistema Linux,
SEO
Experiência:
15 anos de experiência em Desenvolvimento Web desenvolvendo e projetando alguns dos temas WordPress mais populares, como Specular, Tower e Folie.
Educação:
Sou formada em Engenharia Física e MSC em Ciência de Materiais e Opto Eletrônica.
Twitter, Linkedin