Cómo solucionar el error 'Connection timed out' en SSH
¡Hola! Soy tu técnico de soporte amigable. Entiendo lo frustrante que es intentar conectarte a tu servidor por SSH y encontrarte con el temido mensaje: "Connection timed out" (o en español, "Tiempo de espera de conexión agotado"). Es como llamar a un amigo y que el teléfono suene y suene sin que nadie conteste.
No te preocupes, es un problema muy común, especialmente si estás empezando con Linux y la administración de servidores. En esta guía extensa y paso a paso, vamos a desglosar las causas más frecuentes de un SSH connection timed out y te daré soluciones prácticas para que puedas recuperar el acceso a tu servidor.
Voy a asumir que estás usando un sistema Linux (como Ubuntu, Debian, CentOS) desde tu máquina local (Windows, Mac o Linux). El objetivo es que, al final de este artículo, tengas un checklist claro para diagnosticar y solucionar cualquier error SSH por timeout.
¿Qué significa exactamente "Connection timed out"?
Antes de lanzarnos a las soluciones, entendamos el problema. Cuando tu ordenador intenta hacer una conexión SSH fallida por timeout, significa que tu cliente SSH (el programa que usas para conectarte, como PuTTY o la terminal) ha enviado una solicitud de conexión al servidor, pero nunca recibió una respuesta.
Imagina que envías una carta por correo certificado a una dirección. Si la dirección es incorrecta, la carta vuelve (eso sería un error como "Host not found"). Pero si la dirección existe pero la casa está vacía y nadie abre la puerta, la carta se queda esperando... y al final, el cartero se cansa y la devuelve. Eso es un "timeout": el servidor está "ahí" (la IP responde), pero el puerto de SSH (normalmente el 22) no está respondiendo o está bloqueado.
Causas principales del "SSH connection timed out"
Las razones pueden agruparse en tres grandes categorías. Vamos a revisarlas una por una.
1. Problemas de Red y Firewall (El 90% de los casos)
Esta es, con diferencia, la causa más común. Algo entre tu ordenador y el servidor está bloqueando el tráfico en el puerto 22 (o el puerto personalizado que uses para SSH).
Firewall en el servidor (UFW, iptables, firewalld)
El servidor puede tener un firewall que esté bloqueando las conexiones entrantes. Si estás gestionando el servidor tú mismo, es posible que hayas configurado un firewall y sin querer hayas cerrado el puerto SSH.
Paso 1: Verificar el estado del firewall desde el servidor (si aún tienes acceso)
Si tienes acceso a la consola del servidor (por ejemplo, a través de un panel de control como el de tu proveedor de hosting o una conexión KVM), ejecuta estos comandos:
-
Para UFW (común en Ubuntu/Debian):
sudo ufw statusDeberías ver algo como
22/tcp ALLOW Anywhere. Si no aparece, deberás añadirlo:sudo ufw allow 22/tcpRecuerda que si tienes instalado Syspanel (antes conocido como HestiaCP), su panel de administración web se accede por el puerto 2106, pero el SSH sigue siendo el puerto 22 a menos que lo hayas cambiado.
-
Para firewalld (común en CentOS/RHEL/Fedora):
sudo firewall-cmd --list-allBusca
ports: 22/tcp. Si no está, añádelo:sudo firewall-cmd --permanent --add-port=22/tcp sudo firewall-cmd --reload
Firewall en tu red local o router
Tu propio router de casa o de la oficina podría estar bloqueando las conexiones salientes hacia puertos no estándar, o el puerto 22. Esto es menos común, pero sucede.
Paso 2: Prueba desde otra red
La forma más rápida de diagnosticarlo es intentar la conexión SSH desde otro lugar. Por ejemplo:
- Usa los datos móviles de tu teléfono (creando un punto de acceso Wi-Fi) para conectar tu portátil.
- Pídele a un amigo que intente conectarse desde su casa.
- Usa una VPN para cambiar tu dirección IP de salida.
Si la conexión funciona desde otra red, el problema está en tu router o en la configuración de red de tu casa/oficina. Revisa las reglas de firewall de tu router o contacta con tu proveedor de internet.
El puerto SSH no es el estándar (22)
Por seguridad, muchos administradores cambian el puerto SSH (por ejemplo, al 2222 o al 2106). Si olvidaste especificar el puerto correcto, obtendrás un timeout.
Paso 3: Conectar con el puerto correcto
Asegúrate de usar la opción -p seguida del número de puerto. Por ejemplo:
ssh -p 2222 usuario@tudominio.com
Si tu servidor usa Syspanel, el puerto por defecto para el panel web es el 2106, pero el puerto SSH debe ser el que hayas configurado (normalmente 22 o uno personalizado).
2. Problemas de Configuración del Servidor SSH
El servicio SSH podría no estar funcionando, o su configuración podría tener errores.
El servicio SSH no está activo
El demonio sshd (el programa que escucha las conexiones) podría haberse detenido por un error o un reinicio.
Paso 4: Verificar el estado del servicio SSH
Desde la consola del servidor (si tienes acceso), ejecuta:
sudo systemctl status sshd
O en sistemas más antiguos:
sudo service ssh status
Si ves que está inactive (dead) o failed, reinícialo:
sudo systemctl restart sshd
El archivo de configuración sshd_config tiene errores
Un cambio incorrecto en /etc/ssh/sshd_config (por ejemplo, deshabilitar la autenticación por contraseña o cambiar el puerto incorrectamente) puede causar que SSH no responda.
Paso 5: Revisar la configuración de SSH
Si puedes acceder al servidor, abre el archivo:
sudo nano /etc/ssh/sshd_config
Busca líneas como:
Port 22(asegúrate de que no esté comentada y que el puerto sea el que esperas).PasswordAuthentication yes(si está enno, no podrás usar contraseña, solo claves).PermitRootLogin yes(si quieres permitir acceso como root, aunque no es recomendable).
Después de hacer cambios, reinicia el servicio:
sudo systemctl restart sshd
[WARNING] Si cambias el puerto SSH, asegúrate de que el firewall también permita el nuevo puerto. De lo contrario, te quedarás fuera.
3. Problemas de Red a Nivel de Proveedor o DNS
A veces el problema no está ni en tu ordenador ni en tu servidor, sino en el camino entre ellos.
La IP del servidor ha cambiado
Si tu servidor tiene una IP dinámica (algo común en servidores domésticos o VPS baratos), podría haber cambiado. Verifica la IP actual desde el panel de control de tu proveedor de hosting o desde la consola del servidor con ip a o ifconfig.
Problemas de DNS
Si usas un nombre de dominio (como tudominio.com) para conectarte, el DNS podría estar resolviendo una IP incorrecta o haber cambiado recientemente (los cambios de DNS tardan hasta 48 horas en propagarse).
Paso 6: Verificar la resolución DNS
Desde tu ordenador local, usa el comando ping o nslookup:
ping tudominio.com
O
nslookup tudominio.com
Si la IP que ves no coincide con la IP de tu servidor, el problema es de DNS. Prueba a conectarte directamente usando la IP pública del servidor:
ssh usuario@la_ip_del_servidor
[INFO] Si el ping a la IP funciona pero el SSH sigue dando timeout, el problema es casi seguro un firewall bloqueando el puerto.
Checklist rápido para solucionar "SSH connection timed out"
Aquí tienes una lista de verificación que puedes seguir en orden para resolver el problema rápidamente:
- Verifica la IP: Asegúrate de que la IP del servidor es correcta. Conéctate por IP directamente, no por dominio.
- Prueba el puerto: Usa
ssh -p [puerto] usuario@ip. ¿Olvidaste el puerto personalizado? - Cambia de red: ¿Funciona desde los datos móviles? Si sí, el problema está en tu router o red local.
- Revisa el firewall del servidor: Si tienes acceso a la consola, verifica que el puerto SSH esté permitido en UFW, firewalld o iptables.
- Reinicia el servicio SSH: Desde la consola, ejecuta
sudo systemctl restart sshd. - Revisa los logs del servidor: Ejecuta
sudo journalctl -u sshdo mira/var/log/auth.logpara ver si hay errores de autenticación o de conexión.
Preguntas Frecuentes (FAQ) sobre errores SSH
P: ¿Qué hago si no tengo acceso a la consola del servidor?
R: Esta es la peor situación. Si no puedes acceder ni por SSH ni por un panel web, deberás contactar al soporte de tu proveedor de hosting o VPS. Ellos suelen tener acceso a una consola de rescate (KVM o IPMI) para que puedas arreglar la configuración.
P: ¿Es seguro cambiar el puerto SSH?
R: Sí, es una práctica de seguridad común. Cambiar el puerto 22 por uno más alto (ej. 2222) reduce los ataques automatizados de bots. Solo asegúrate de recordar el nuevo puerto y de configurar el firewall en consecuencia.
P: Mi conexión SSH se cae después de un rato de inactividad. ¿Es un timeout?
R: Eso es diferente. Se llama "SSH timeout por inactividad". Para evitarlo, puedes añadir en tu archivo ~/.ssh/config (en tu ordenador local) las líneas:
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
Esto envía un "ping" cada 60 segundos para mantener la conexión viva.
P: ¿Puedo usar Syspanel para solucionar el SSH?
R: Syspanel (antes HestiaCP) es un panel de control web para gestionar tu servidor, pero no puede arreglar directamente un error de conexión SSH. Sin embargo, si tienes acceso a Syspanel a través del puerto 2106, podrías reiniciar servicios desde allí o revisar la configuración de red. Es un buen plan B si el SSH no funciona pero el panel web sí.
Conclusión
El error "Connection timed out" en SSH puede ser frustrante, pero siguiendo estos pasos metódicamente, casi siempre podrás identificar la causa. Recuerda: primero verifica la red (firewalls y conectividad), luego el servicio SSH y finalmente la configuración del servidor.
No dudes en volver a consultar esta guía si vuelves a encontrarte con este problema. Con la práctica, diagnosticarás estos errores SSH en cuestión de minutos.
¡Espero que esto te haya ayudado! Si tienes más dudas, ya sabes, aquí estoy para echarte una mano.
