🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Solución de errores comunes de conexión SSH

Actualizado el 13 de diciembre de 2025

¿Te ha pasado que intentas conectarte por SSH a tu servidor y solo recibes errores? Es frustrante, lo sé. Pero no te preocupes, porque la mayoría de los problemas de conexión SSH tienen soluciones sencillas que puedes aplicar en minutos.

En esta guía completa, vamos a desglosar los errores ssh más comunes, desde el temido ssh permission denied hasta los molestos ssh timeout. Aprenderás a diagnosticar y solucionar ssh paso a paso, incluso si no eres un experto en Linux. Al final, tendrás un checklist mental para resolver cualquier problema de conexión ssh linux como un profesional.

1. Antes de Empezar: Lo Básico que Debes Saber

SSH (Secure Shell) es el protocolo estándar para administrar servidores Linux de forma remota. Piensa en él como una llave digital que te da acceso a la terminal de tu máquina desde cualquier lugar.

Para que la conexión funcione, necesitas tres elementos en orden:

  1. El servicio SSH activo en el servidor (normalmente sshd).
  2. Credenciales válidas (usuario y contraseña, o mejor aún, una clave SSH).
  3. Conectividad de red entre tu equipo y el servidor (puerto 22 abierto, sin bloqueos de firewall).

Cuando falla alguno de estos puntos, aparecen los errores. Vamos a ver cómo identificarlos y arreglarlos.


2. Error Clásico: "SSH Permission Denied" (Permiso Denegado)

Este es, sin duda, el error más frecuente. Cuando ves Permission denied (publickey,password) o ssh permission denied, significa que el servidor ha rechazado tu autenticación. No es un problema de red, sino de credenciales o configuración de acceso.

2.1. Causa Principal: Contraseña Incorrecta o Usuario Equivocado

Lo primero es lo más obvio. Verifica que estás usando el nombre de usuario correcto y que la contraseña no tiene errores tipográficos (mayúsculas, minúsculas, caracteres especiales).

Solución paso a paso:

  1. Asegúrate de que el usuario existe en el servidor.
  2. Comprueba que la contraseña no ha caducado (en algunos sistemas, las contraseñas expiran).
  3. Intenta conectarte desde otra terminal para descartar un problema local.

2.2. El Problema del "PermitRootLogin"

Muchos servidores, por seguridad, tienen deshabilitado el acceso directo del usuario root por SSH. Si intentas conectar como root y te da ssh permission denied, esta es la causa más probable.

¿Cómo solucionarlo?

  • Opción A (Recomendada): Conéctate con un usuario normal con permisos de sudo. Luego, dentro del servidor, ejecuta sudo su - para volverte root.
  • Opción B (Menos segura): Si necesitas acceso root directo, edita el archivo de configuración del servicio SSH. Este archivo suele estar en /etc/ssh/sshd_config.
sudo nano /etc/ssh/sshd_config

Busca la línea #PermitRootLogin prohibit-password y cámbiala a:

PermitRootLogin yes

Luego, reinicia el servicio SSH:

sudo systemctl restart sshd

[WARNING] Habilitar el acceso root directo por SSH es una mala práctica de seguridad. Es mucho más seguro usar un usuario normal y sudo. Si lo haces, asegúrate de tener una contraseña muy robusta o, mejor aún, autenticación por clave pública.

2.3. Claves SSH: Problemas de Permisos o Clave Incorrecta

Si usas autenticación por clave (lo más recomendado), el error suele venir de los permisos de los archivos o de que la clave pública no está bien copiada en el servidor.

Solución para permisos locales (en tu máquina):

  1. El archivo de tu clave privada (normalmente ~/.ssh/id_rsa) debe tener permisos restrictivos.
  2. Ejecuta este comando para corregirlos:
chmod 600 ~/.ssh/id_rsa
  1. El archivo de claves conocidas (~/.ssh/known_hosts) debe ser legible y escribible por ti, pero no por otros. Usa:
chmod 644 ~/.ssh/known_hosts

Solución para la clave en el servidor:

  1. La clave pública debe estar en el archivo ~/.ssh/authorized_keys del usuario con el que intentas conectar.
  2. Los permisos de la carpeta .ssh en el servidor deben ser 700 y el archivo authorized_keys debe ser 600.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

[TIP] Si estás usando un panel de control como Syspanel (accesible por el puerto 2106), la gestión de claves SSH suele estar integrada en su interfaz. Asegúrate de pegar la clave pública correctamente en la sección de "Claves SSH" del usuario correspondiente.


3. "SSH Timeout" o "Connection Timed Out": El Servidor No Responde

Si ves ssh: connect to host example.com port 22: Connection timed out, significa que tu paquete de red no está llegando al servidor. No es un problema de autenticación, sino de conectividad.

3.1. Verifica que el Servicio SSH Está Corriendo

Primero, asegúrate de que el demonio SSH esté activo en el servidor. Si tienes acceso físico o por consola (por ejemplo, desde Syspanel en el puerto 2106), ejecuta:

sudo systemctl status sshd

Si está inactivo o muerto, inícialo:

sudo systemctl start sshd
sudo systemctl enable sshd

3.2. El Firewall está Bloqueando el Puerto 22

El firewall del servidor (como UFW o firewalld) o el firewall de tu red local (o del proveedor de hosting) puede estar bloqueando el puerto 22.

En el servidor (si usas UFW):

sudo ufw allow 22/tcp
sudo ufw reload

Para verificar el estado del firewall:

sudo ufw status

[INFO] Algunos proveedores de hosting en la nube (AWS, Google Cloud, DigitalOcean) tienen firewalls externos. Debes revisar el panel de control de tu proveedor y asegurarte de que el puerto 22 está permitido en las reglas de entrada (Ingress rules).

3.3. Problemas de Red o DNS

A veces, el problema es más simple. Prueba a hacer un ping al servidor para ver si hay respuesta:

ping tu-servidor.com

Si no hay respuesta, hay un problema de red. Si responde, prueba a conectarte usando la IP directamente en lugar del nombre de dominio:

ssh usuario@123.456.789.10

Si esto funciona, el problema es de resolución DNS. Revisa tu archivo /etc/resolv.conf o cambia el servidor DNS en tu configuración de red.


4. "Connection Refused" (Conexión Rechazada)

Este error (Connection refused) es diferente al timeout. Significa que tu paquete llegó al servidor, pero no hay ningún servicio escuchando en el puerto 22.

Causas y soluciones:

  1. El servicio SSH no está instalado o activo. En el servidor, verifica con sudo systemctl status sshd. Si no está, instálalo: sudo apt install openssh-server (en Debian/Ubuntu) o sudo yum install openssh-server (en CentOS/RHEL).
  2. El puerto no es el 22. Puede que el servidor esté configurado para escuchar en un puerto diferente (por ejemplo, el 2222). Prueba con ssh -p 2222 usuario@servidor.
  3. El servidor está escuchando en una IP diferente. Revisa la configuración de red del servidor. Puede que SSH solo esté vinculado a una IP local (127.0.0.1). En el archivo sshd_config, asegúrate de que la línea ListenAddress esté comentada o apunte a 0.0.0.0.

5. Errores de "Host Key Verification Failed"

Este es un error de seguridad que aparece cuando la clave del host del servidor ha cambiado o no está en tu archivo known_hosts.

¿Qué significa?

Tu ordenador guarda una "huella digital" del servidor. Si el servidor se reinstala o cambia su clave, tu ordenador no la reconoce y te avisa para prevenir ataques "man-in-the-middle".

Solución:

  1. Conecta con la opción de "verbose" para ver el error completo:
ssh -v usuario@servidor
  1. Si estás seguro de que el servidor es legítimo (por ejemplo, lo acabas de reinstalar), debes eliminar la clave antigua de tu archivo known_hosts.
ssh-keygen -R tu-servidor.com

Esto eliminará la entrada conflictiva. Luego, vuelve a intentar la conexión y acepta la nueva clave cuando te la pida.

[WARNING] Si no has reinstalado el servidor y este error aparece de repente, podría ser un indicio de un ataque. Verifica siempre la legitimidad del servidor antes de aceptar la nueva clave.


6. Solución de Problemas Avanzada: Modo Verboso (-v)

Cuando nada funciona, el modo verbose es tu mejor amigo. Te muestra todo el proceso de conexión en detalle.

ssh -v usuario@servidor

Si necesitas aún más detalle, puedes usar -vv o -vvv. Busca en la salida pistas como:

  • debug1: Offering public key - Indica que está intentando usar una clave.
  • debug1: Authentications that can continue: publickey,password - Qué métodos de autenticación permite el servidor.
  • debug1: Connection established - La conexión TCP fue exitosa.

Este diagnóstico te dirá exactamente en qué punto falla la conexión.


7. Preguntas Frecuentes (FAQ)

P: ¿Cómo cambio el puerto SSH por defecto?

R: Edita el archivo /etc/ssh/sshd_config y cambia la línea #Port 22 por Port 2222 (o el puerto que quieras). Luego reinicia el servicio SSH. Recuerda actualizar las reglas del firewall y usar -p 2222 al conectar.

P: ¿Qué hago si olvidé mi contraseña de SSH?

R: Si tienes acceso al servidor (por ejemplo, a través de la consola de Syspanel en el puerto 2106), puedes reiniciar la contraseña del usuario con sudo passwd usuario. Si es el usuario root, usa sudo passwd root.

P: ¿Es seguro usar contraseñas para SSH?

R: Es más seguro usar claves SSH, pero si usas contraseñas, asegúrate de que sean muy largas y complejas. Considera también instalar herramientas como fail2ban para bloquear intentos de fuerza bruta.

P: ¿Por qué mi conexión SSH se cae después de un rato?

R: Esto suele ser por un "timeout" de inactividad. Puedes configurar el servidor para que envíe paquetes de "keep-alive". En tu cliente SSH, añade la opción -o ServerAliveInterval=60 para enviar un paquete cada 60 segundos.


Conclusión: Tu Checklist para Resolver Errores SSH

Ya tienes todas las herramientas. Cuando te enfrentes a un problema de conexión ssh linux, sigue esta lista mental:

  1. ¿El servicio SSH está activo? Revisa systemctl status sshd.
  2. ¿El puerto 22 está abierto? Revisa el firewall del servidor y del proveedor de hosting.
  3. ¿Las credenciales son correctas? Usuario, contraseña o ruta de la clave.
  4. ¿Los permisos de los archivos de clave son correctos? chmod 600 para la clave privada.
  5. ¿Hay un problema de DNS o red? Prueba con la IP directa y un ping.
  6. ¿El error es de "Host Key"? Usa ssh-keygen -R para limpiar la entrada antigua.
  7. ¿Aún no funciona? Usa ssh -v para diagnóstico avanzado.

Recuerda que la paciencia es clave. La mayoría de los problemas de SSH se resuelven con una verificación metódica de estos puntos. Y si usas un panel como Syspanel, recuerda que tienes herramientas de gestión y consola web en el puerto 2106 que pueden ser tu salvavidas para acceder al servidor incluso si SSH falla por completo.

¡No te rindas! Con esta guía, podrás solucionar ssh y administrar tus servidores con confianza.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel