El error «no se puede establecer la autenticidad del host» (authenticity of host can’t be established) suele producirse la primera vez que intentas conectarte a un servidor mediante SSH (Secure Shell). Sin embargo, también puede indicar un problema grave. Por ejemplo, alguien puede estar suplantando la identidad del servidor.

Afortunadamente, existen diferentes formas de solucionar el error «no se puede establecer la autenticidad del host» y garantizar una conexión fluida y segura. Por ejemplo, puede que necesites crear una Autoridad de Certificación (CA – Certification Authority) autogestionada, actualizar tu software SSH o verificar el host remoto.

En este post, examinaremos más detalladamente, el error «no se puede establecer la autenticidad del host». A continuación, repasaremos algunas causas comunes y discutiremos ocho soluciones sencillas. ¡Empecemos!

¿Qué Es el Error «No Se Puede Establecer la Autenticidad del Host»?

«No se puede establecer la autenticidad del host» es un error habitual que se produce principalmente al utilizar SSH (Secure Shell). Normalmente, se te pide que autentiques la conexión SSH con una contraseña.

Sin embargo, también puedes autenticarla utilizando criptografía de clave pública. Esto implica generar un par de claves SSH formado por una clave pública y otra privada. La clave privada permanece en tu propio sistema, mientras que la pública se copia en el sistema al que te conectas.

Lo más habitual es que aparezca este mensaje de error la primera vez que te conectes al servidor mediante SSH. Esto se debe a que el cliente SSH no está familiarizado con el servidor.

Si confías en el servidor, puedes seguir adelante y descartar el error. Esta acción pondrá la clave SSH en tu archivo known_hosts. Después, cada vez que te conectes, podrás comparar la clave que recibas del host con la de tu archivo known_hosts para verificar la identidad del servidor.

Si ya te has conectado antes al servidor, el error «no se puede establecer la autenticidad del host» sugiere que el servidor ha sido reconfigurado con una nueva clave. Sin embargo, este mensaje también puede indicar un problema.

Por ejemplo, puede darse el caso de que alguien esté suplantando la identidad del servidor y pueda interceptar cualquier dato que se envíe a través de la conexión. Examinaremos más detenidamente las causas principales en la siguiente sección.

¿Qué Causa el Error «No Se Puede Establecer la Autenticidad del Host»?

Hay múltiples causas detrás del error «no se puede establecer la autenticidad del host». Aquí tienes algunas de las más comunes:

  • La clave pública del host remoto ha cambiado. Aunque esto suele significar que el servidor ha sido actualizado, también puede indicar que el host ha sido comprometido. En este caso, un atacante podría estar intentando hacerse pasar por el host.
  • El cliente no se ha conectado antes al host remoto. Si éste es el caso, el SSH no está familiarizado con el servidor y, por tanto, puede devolver un error.
  • Múltiples claves de host. Un servidor puede tener varias claves de host, como ECDSA y RSA. Si estás utilizando la clave incorrecta, es posible que te aparezca el error
  • La clave del host se ha borrado o corrompido. En este caso, se lanzará una SSHException, que producirá el error «no se puede establecer la autenticidad del host».
  • El DNS del host remoto está mal configurado. Un Sistema de Nombres de Dominio (DNS) mal configurado puede conectarte a un host con una clave de host incorrecta.
  • Un ataque de intermediario. El error puede ser una señal de que un atacante está interceptando la conexión entre tú y el host remoto.

Para mejorar la seguridad y el rendimiento, es importante que elijas un servicio de alojamiento de calidad. Con el Alojamiento de Aplicaciones de Kinsta, puedes ejecutar tus proyectos en la infraestructura de Google Cloud Platforms:

Kinsta’s application hosting service
Servicio de alojamiento de aplicaciones de Kinsta

Además, la plataforma está respaldada por las soluciones de seguridad de nivel empresarial de Cloudflare. Estas incluyen un cortafuegos y protección DDoS.

Además, puedes acceder a certificados SSL gratuitos o instalar certificados personalizados. Además, gracias a nuestro modelo de precios basado en el uso, es fácil ampliar tus recursos a medida que crece tu negocio.

Cómo Solucionar el Error «No Se Puede Establecer la Autenticidad del Host» (8 Métodos)

Ahora que sabes un poco más sobre el error «no se puede establecer la autenticidad del host», veamos ocho formas de solucionarlo.

1. Comprueba tu conexión

La primera forma de solucionar el error «no se puede establecer la autenticidad del host» es asegurarte de que la conexión de red es estable. Además, es una buena idea comprobar que no haya nada bloqueando la conexión.

Por ejemplo, puedes estar ejecutando un programa antivirus o tener activado un cortafuegos de aplicaciones web (WAF). Esto puede interferir en la conexión, por lo que quizá quieras desactivar temporalmente el software para intentar borrar el mensaje de error.

2. Sustituye la dirección IP

Mucha gente asume erróneamente que cada servidor remoto sólo tiene una clave, cuando en realidad un servidor puede tener varias claves de host. Así, puede que estés utilizando la clave de host RSA, pero que el servidor te esté presentando una clave de host ECDSA.

Por tanto, verás un mensaje de error porque la clave de host es diferente. Si has configurado explícitamente la opción HostKeyAlgorithms, SSH la respetará y preferirá los algoritmos que hayas especificado.

Puedes mirar en tus archivos ~/.ssh/config y /etc/ssh/ssh_config para ver si es así. Si es así, añade una entrada a tu archivo ~/ .ssh/config como ésta:

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

Es importante tener en cuenta que esto habilita el uso de firmas SHA-1. Las firmas SHA-1 ya no se consideran seguras, puesto que sus vulnerabilidades son bien conocidas. Por tanto, si sabes que el servidor admite firmas SHA-2, puedes eliminar el comando.

También puede darse el caso de que el sistema no utilice entradas con hash. Por lo tanto, la entrada que has añadido explícitamente podría no ser correcta.

En este caso, tendrás que comprobar los mismos archivos de configuración para HashKnownHosts y ajustar la entrada en consecuencia. También puedes utilizar ssh-keygen -F 192.0.2.1 -l (sustituyendo la dirección IP) para ver si hay alguna coincidencia con la entrada.

3. Omite la comprobación de la clave del host

Hay casos en los que el mensaje de error «no se puede establecer la autenticidad del host» es inofensivo. Por ejemplo, la clave del host puede haber cambiado de forma legítima si el servidor se ha actualizado o reconfigurado recientemente.

Si éste es el caso, puedes saltarte el procedimiento de comprobación de claves enviando la clave a un archivo known_hosts nulo. En este archivo, tendrás que añadir la siguiente entrada:

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

También puedes configurar estas opciones de forma permanente en ~/.ssh/config (para el usuario actual). Si quieres configurarlo para todos los usuarios, utiliza en su lugar /etc/ssh/ssh_config.

4. Crea tu propia Autoridad de Certificación (AC) autogestionada

Los navegadores web tienen preinstalados certificados raíz X509 que te permiten confiar en los certificados SSL (Secure Sockets Layer) de sitios que nunca has visitado antes. Aunque algunos clientes SSH admiten X509 o PKI, otros no. Esto significa que no puedes utilizar un certificado SSL de VeriSign para evitar la solicitud de autenticidad si el cliente no lo admite.

Sin embargo, es posible que puedas eliminar el error «no se puede establecer la autenticidad del host» creando tu propia Autoridad de Certificación (CA) autogestionada. Entonces, podrás firmar en el servidor. Además, cualquier cliente con tu clave pública confiará automáticamente en tus servidores.

Para empezar, necesitarás generar un par de claves SSH. Puedes hacerlo con la siguiente entrada:

ssh-keygen -f cert_signer

A continuación, puedes firmar la clave pública de host de cada servidor como tal:

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

Esto genera una clave pública de host firmada:

/etc/ssh/ssh_host_rsa_key-cert.pub

Ahora, navega hasta tu archivo /etc/ssh/sshd_config. Aquí, puedes apuntar el HostCertificate a este archivo: HostCertificate /etc/ssh/ssh_host_rsa_key-cert.pub.

A continuación, reinicia el servicio SSH. En el cliente SSH, tendrás que añadir el siguiente código al archivo known_hosts:

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

Esta entrada incluye:

  • La autoridad de certificación
  • El dominio (ejemplo.com)
  • El contenido completo de la clave pública

Ahora debería desaparecer el error, ya que la clave pública de cert_signer confiará en cualquier servidor cuya clave pública de host esté firmada por la clave privada de cert_signer.

5. Actualiza el software SSH

Otra solución para el error «no se puede establecer la autenticidad del host» es actualizar tu software cliente SSH para asegurarte de que utilizas la última versión. De esta forma, puedes estar seguro de que tu software es compatible con el host remoto.

Las actualizaciones suelen incluir correcciones de errores y parches de seguridad que mejoran la estabilidad y seguridad de la conexión. Una vez que hayas actualizado el software, deberías poder continuar sin ver el mensaje de error.

6. Verifica el host remoto

También puede aparecer el error «no se puede establecer la autenticidad del host» si la clave del host es incorrecta o ha caducado. Por lo tanto, es posible que quieras comprobar que la clave del host remoto se ha generado correctamente y que sigue siendo válida.

Haciendo esto, puedes verificar que el servidor remoto está en línea y disponible para conexiones. Mientras tanto, puedes asegurarte de que la clave del host es correcta. De esta forma, puedes confirmar que te estás conectando al servidor correcto (y no a un servidor malicioso que se hace pasar por el servidor de destino).

Para empezar, comprueba el host remoto utilizando el comando «ssh-keyscan»:

ssh-keyscan example.com

Esto recupera la clave pública del host remoto y la muestra en tu terminal. A continuación, puedes comparar esta clave con la clave almacenada en tu archivo known_hosts (o con la clave proporcionada por el administrador del servidor).

Si las claves coinciden, es probable que el host remoto sea el servidor correcto. Sin embargo, si las claves no coinciden, lo mejor es informar del problema al administrador del servidor y detener la conexión.

7. Elimina la clave antigua del host

El error «no se puede establecer la autenticidad del host» también puede significar que tu clave de host ha cambiado. Por tanto, podrías solucionar el error eliminando la clave antigua de tu archivo known_hosts.

La clave del servidor remoto puede haberse actualizado debido a un cambio en la configuración del servidor o a un fallo de seguridad. En este caso, la antigua clave del host no coincidirá con la nueva, y provocará un error.

Lo único que tienes que hacer es borrar la entrada de la clave pública del host remoto que está almacenada en known_hosts. Para ello, utiliza el siguiente comando:

ssh-keygen -R example.com

Esto eliminará la entrada del archivo known_hosts. Entonces, la próxima vez que intentes conectarte al servidor mediante SSH, tendrás que verificar la nueva clave de host.

8. Limpia tu DNS

Por último, puede darse el caso de que el Sistema de Nombres de Dominio (DNS – Domain Name System) de tu host esté mal configurado. Esto puede hacer que te conectes a un host con una clave incorrecta, lo que provoca el error «no se puede establecer la autenticidad del host».

La forma más sencilla de resolver este problema es limpiar el DNS. Para ello, abre el símbolo del sistema de Windows escribiendo «cmd» en la barra de búsqueda:

The Command Prompt in Windows
Símbolo del sistema en Windows

A continuación, introduce el siguiente comando SSH:

ipconfig/flushdns

Esto debería eliminar el error y permitirte conectarte al servidor.

Resumen

El error «no se puede establecer la autenticidad del host» suele producirse cuando intentas conectarte a un servidor mediante SSH. Puede indicar que el servidor ha sido reconfigurado. Sin embargo, también puede significar que el servidor ha sido comprometido.

Si es la primera vez que realizas la conexión, es normal que aparezca este mensaje de error y puedes simplemente ignorarlo. Si no es así, puede que necesites verificar el host para asegurarte de que te estás conectando al servidor correcto. También puede que necesites borrar el host antiguo del archivo known_hosts o actualizar tu software SSH.

Otra forma sencilla de aumentar la seguridad de tu aplicación es utilizar un host de calidad como Kinsta. Todos nuestros planes ofrecen soporte de alta calidad para ayudarte a solucionar cualquier problema que puedas encontrar