O erro “Authenticity of host can’t be established” geralmente ocorre na primeira vez que você tenta se conectar a um servidor via SSH (Secure Shell). No entanto, ele também pode indicar um problema sério. Por exemplo, alguém pode estar se passando pela identidade do servidor.

Há várias formas de resolver o erro “authenticity of host can’t be established” e assegurar uma conexão suave e segura. Por exemplo, uma opção é criar uma autoridade de certificação (CA) que você mesmo gerencia, atualizar seu software SSH, ou ainda verificar o host remoto.

Neste artigo, vamos explorar detalhadamente o erro “authenticity of host can’t be established”. Depois, vamos identificar algumas causas frequentes e apresentar oito soluções práticas. Vamos lá!

O que é o erro “Authenticity of Host Can’t Be Established”?

“Authenticity of host can’t be established” é um erro comum que ocorre principalmente ao usar SSH (Secure Shell). Normalmente, é necessário autenticar a conexão SSH com uma senha.

No entanto, você também pode autenticá-la usando criptografia de chave pública. Isso envolve a geração de um par de chaves SSH que consiste em uma chave pública e uma privada. A chave privada permanece no seu próprio sistema, enquanto a chave pública é copiada para o sistema ao qual você está se conectando.

Na maioria das vezes, você receberá essa mensagem de erro na primeira vez em que se conectar ao servidor via SSH. Isso ocorre porque o cliente SSH não está familiarizado com o servidor.

Se você confia no servidor, pode seguir em frente e ignorar o erro. Essa ação colocará a chave SSH em seu arquivo known_hosts. Em seguida, toda vez que você se conectar, poderá comparar a chave obtida do host com a que está no arquivo known_hosts para verificar a identidade do servidor.

Se você já se conectou ao servidor antes, o erro “authenticity of host can’t be established” sugere que o servidor foi reconfigurado com uma nova chave. No entanto, essa mensagem também pode indicar um problema.

Por exemplo, pode ser que alguém esteja se passando pela identidade do servidor e consiga interceptar todos os dados enviados pela conexão. Veremos mais detalhadamente as principais causas na próxima seção.

O que causa o erro “Authenticity of Host Can’t Be Established”?

Há várias causas por trás do erro “authenticity of host can’t be established”. Aqui estão algumas das mais comuns:

  • A chave pública do host remoto foi alterada. Embora isso normalmente signifique que o servidor foi atualizado, também pode indicar que o host foi comprometido. Nesse caso, um invasor pode estar tentando se passar pelo host.
  • O cliente nunca se conectou ao host remoto antes. Se esse for o caso, o SSH não está familiarizado com o servidor e, portanto, pode retornar um erro.
  • Várias chaves de host. Um servidor pode ter várias chaves de host, como ECDSA e RSA. Se estiver usando a chave errada, você poderá receber o erro.
  • A chave do host foi excluída ou corrompida. Neste caso, uma SSHException será levantada, produzindo o erro “Authenticity of host can’t be established”. O DNS do host remoto está configurado incorretamente. Um Sistema de Nomes de Domínio (DNS) mal configurado pode conectá-lo a um host com uma chave de host incorreta.
  • O DNS do host remoto está mal configurado. Um sistema de nomes de domínio (DNS) mal configurado pode conectar você a um host com uma chave de host incorreta.
  • Um ataque man-in-the-middle. O erro pode ser um sinal de que um invasor está interceptando a conexão entre você e o host remoto.

Para garantir uma segurança e desempenho superiores, é crucial selecionar um serviço de hospedagem de alta qualidade. Optando pela Hospedagem de Aplicativos da Kinsta, você tem a oportunidade de rodar seus projetos utilizando a infraestrutura avançada das Google Cloud Platforms.

Serviço de hospedagem de aplicativos da Kinsta.
Serviço de hospedagem de aplicativos da Kinsta.

Além disso, a plataforma conta com o suporte das soluções de segurança de nível empresarial da Cloudflare, incluindo um firewall e proteção contra-ataques DDoS.

Além disso, você pode acessar certificados SSL gratuitos ou instalar certificados personalizados. Enquanto isso, graças ao nosso modelo de preços baseado no uso, é fácil dimensionar seus recursos à medida que sua empresa cresce.

Como corrigir o erro “Authenticity of Host Can’t Be Established” (8 métodos)

Agora que você sabe um pouco mais sobre o erro “authenticity of host can’t be established”, vamos dar uma olhada em oito maneiras de corrigi-lo.

1. Verifique sua conexão

A primeira maneira de resolver o erro “authenticity of host can’t be established” é verificar se a conexão de rede está estável. Além disso, é uma boa ideia verificar se não há nada bloqueando a conexão.

Por exemplo, você pode estar executando um programa antivírus ou ter um Web Application Firewall (WAF) ativado. Isso pode interferir na conexão, portanto, talvez você queira desativar temporariamente o software para tentar limpar a mensagem de erro.

2. Substitua o endereço IP

Muitas pessoas assumem erroneamente que cada servidor remoto possui apenas uma chave, quando, na verdade, um servidor pode ter várias chaves de host. Portanto, você pode estar usando a chave de host RSA, mas o servidor está apresentando uma chave de host ECDSA.

Portanto, você verá uma mensagem de erro porque a chave do host é diferente. Se você configurou explicitamente a opção HostKeyAlgorithms, o SSH a respeitará e preferirá os algoritmos que você especificou.

Você pode consultar o arquivo ~/.ssh/config e os arquivos /etc/ssh/ssh_config para ver se esse é o caso. Se for o caso, adicione uma entrada ao arquivo ~/.ssh/config como esta:

# Update with the real IP address. Host 192.0.2.1 HostKeyAlgorithms rsa-sha2-512,rsa-sha2-256,ssh-rsa

É importante observar que isso permite o uso de assinaturas SHA-1. As assinaturas SHA-1 não são mais consideradas seguras, pois as vulnerabilidades são bem conhecidas. Portanto, se você souber que o servidor oferece suporte a assinaturas SHA-2, poderá remover o comando.

Também pode ser que o sistema não use entradas com hash. Portanto, a entrada que você adicionou explicitamente pode não estar correta.

Nesse caso, você terá que verificar os mesmos arquivos de configuração para HashKnownHosts e ajustar a entrada de acordo. Você também pode usar ssh-keygen -F 192.0.2.1 -l (substituindo o endereço IP) para ver se há uma correspondência para a entrada.

3. Ignore a verificação da chave do host

Há casos em que a mensagem de erro “Authenticity of host can’t be established” é inofensiva. Por exemplo, a chave do host pode ter sido alterada de forma legítima se o servidor tiver sido atualizado ou reconfigurado recentemente.

Se esse for o caso, você pode ignorar o procedimento de verificação de chave enviando a chave para um arquivo known_hosts nulo. Nesse arquivo, você precisará adicionar a seguinte entrada:

$ ssh -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" user@host

Você também pode configurar essas opções permanentemente em ~/.ssh/config (para o usuário atual). Se você quiser configurá-las para todos os usuários, use o arquivo /etc/ssh/ssh_config.

4. Crie sua própria autoridade de certificação (CA) autogerenciada

Os navegadores da web têm certificados raiz X509 pré-instalados, o que permite que você confie nos certificados SSL (Secure Sockets Layer) de sites que nunca visitou antes. Embora alguns clientes SSH sejam compatíveis com X509 ou PKI, outros não são. Isso significa que você não pode usar um certificado SSL da VeriSign para ignorar o prompt de autenticidade se o cliente não for compatível com ele.

No entanto, talvez você consiga eliminar o erro “Authenticity of host can’t be established” criando sua própria autoridade de certificação (CA) autogerenciada. Assim, você poderá fazer login no servidor. Além disso, qualquer cliente com sua chave pública confiará automaticamente em seus servidores.

Para começar, você precisará gerar um par de chaves SSH. Você pode fazer isso com a seguinte entrada:

ssh-keygen -f cert_signer

Em seguida, você pode assinar a chave de host público de cada servidor da seguinte forma:

ssh-keygen -s cert_signer -I cert_signer -h -n www.example.com -V +52w /etc/ssh/ssh_host_rsa_key.pub

Isso gera uma chave pública de host assinada:

/etc/ssh/ssh_host_rsa_key-cert.pub

Agora, navegue até o arquivo /etc/ssh/sshd_config. Aqui, você pode apontar o HostCertificate para esse arquivo: HostCertificate /etc/ssh/ssh_host_rsa_key-cert.pub.

Em seguida, reinicie o serviço SSH. No cliente SSH, você precisará adicionar o seguinte código ao arquivo known_hosts:

@cert-authority *.example.com ssh-rsa AAAAB3Nz...cYwy+1Y2u/

Essa entrada inclui:

  • A autoridade de certificação
  • O domínio (exemplo.com)
  • O conteúdo completo da chave pública

Agora o erro deve desaparecer, pois a chave pública cert_signer confiará em qualquer servidor cuja chave pública de host seja assinada pela chave privada cert_signer.

5. Atualize o software SSH

Outra solução para o erro “Authenticity of host can’t be established” é atualizar o software cliente SSH para garantir que você esteja usando a versão mais recente. Dessa forma, você pode ter certeza de que seu software é compatível com o host remoto.

As atualizações geralmente vêm com correções de bugs e patches de segurança que melhoram a estabilidade e a segurança da conexão. Depois de atualizar o software, você poderá prosseguir sem ver a mensagem de erro.

6. Verifique o host remoto

Você também poderá receber o erro “Authenticity of host can’t be established” se a chave do host estiver incorreta ou expirada. Portanto, talvez você queira verificar se a chave do host remoto foi gerada corretamente e se ainda é válida.

Ao fazer isso, você pode verificar se o servidor remoto está on-line e disponível para conexões. Enquanto isso, você pode garantir que a chave do host esteja correta. Dessa forma, você pode confirmar que está se conectando ao servidor certo (e não a um servidor mal-intencionado que se faz passar pelo servidor de destino).

Para começar, verifique o host remoto usando o comando “ssh-keyscan”:

ssh-keyscan example.com

Isso recupera a chave pública do host remoto e a exibe em seu terminal. Em seguida, você pode comparar essa chave com a chave armazenada no seu arquivo known_hosts (ou com a chave fornecida pelo administrador do servidor).

Se as chaves forem iguais, é provável que o host remoto seja o servidor correto. Entretanto, se as chaves não corresponderem, é melhor você relatar o problema ao administrador do servidor e interromper a conexão.

7. Remova a chave do host antigo

O erro “Authenticity of host can’t be established” também pode significar que sua chave de host foi alterada. Portanto, talvez você consiga corrigir o erro removendo a chave antiga do arquivo known_hosts.

A chave do servidor remoto pode ter sido atualizada devido a uma alteração na configuração do servidor ou a uma violação de segurança. Nesse caso, a chave do host antigo não corresponderá à nova e isso acionará um erro.

Tudo o que você precisa fazer é excluir a entrada da chave pública do host remoto que está armazenada em known_hosts. Para fazer isso, use o seguinte comando:

ssh-keygen -R example.com

Isso removerá a entrada do arquivo known_hosts. Então, na próxima vez que você tentar se conectar ao servidor via SSH, precisará verificar a nova chave de host.

8. Limpe seu DNS

Por fim, pode ser que o sistema de nomes de domínio (DNS) do host esteja mal configurado. Isso pode fazer com que você se conecte a um host com a chave errada, resultando no erro “Authenticity of host can’t be established”.

A maneira mais fácil de resolver esse problema é limpar o DNS. Para fazer isso, abra o prompt de comando do Windows digitando “cmd” na barra de pesquisa:

Prompt de comando no Windows.
Prompt de comando no Windows.

Em seguida, digite o seguinte comando SSH:

ipconfig/flushdns

Isso deve eliminar o erro e permitir que você se conecte ao servidor.

Resumo

O erro “Authenticity of host can’t be established” normalmente ocorre quando você tenta se conectar a um servidor via SSH. Ele pode indicar que o servidor foi reconfigurado. No entanto, também pode significar que o servidor foi comprometido.

Se for a sua primeira vez fazendo a conexão, é normal ver essa mensagem de erro e você pode simplesmente ignorá-la. Se não for, você pode precisar verificar o host para garantir que está se conectando ao servidor correto. Você também pode precisar excluir o host antigo do arquivo known_hosts ou atualizar seu software SSH.

Outra maneira fácil de aumentar a segurança do seu aplicativo é usar um provedor de hospedagem de sites de qualidade como a Kinsta. Todos os nossos planos oferecem suporte de alta qualidade para ajudar a solucionar quaisquer problemas que você possa encontrar!