Introducción al Error Connection Refused en SSH
Uno de los problemas más frustrantes para los administradores de sistemas y desarrolladores que trabajan con servidores Linux es encontrarse con el mensaje ssh: connect to host [IP] port 22: Connection refused al intentar conectarse de forma remota. Este error indica que la máquina destino ha respondido activamente al intento de conexión denegándola, lo que suele estar relacionado con fallos en el servicio SSH, configuraciones de red o bloqueos de seguridad.
Causas Principales del Error SSH en Linux
Antes de aplicar cualquier solución, es fundamental entender por qué se produce este fallo en distribuciones como Ubuntu, Debian o CentOS:
- El servicio SSH (OpenSSH Server) no está instalado o se encuentra detenido en el servidor remoto.
- El demonio SSH está configurado para escuchar en un puerto diferente al puerto estándar 22.
- Un cortafuegos (Firewalld, UFW o iptables) está bloqueando las conexiones entrantes al puerto SSH.
- Existen problemas en la red o la dirección IP de destino es incorrecta.
Método 1: Comprobar e Iniciar el Servicio SSH
El primer paso consiste en verificar si el servidor SSH está activo en la máquina remota. Si tienes acceso físico o mediante una consola de recuperación (como VNC o IPMI), ejecuta los siguientes comandos:
- Comprueba el estado actual del servicio con systemctl:
sudo systemctl status ssh(en Ubuntu/Debian) osudo systemctl status sshd(en CentOS/RHEL). - Si el servicio está detenido, inícalo inmediatamente con:
sudo systemctl start ssh - Configura el servicio para que se ejecute automáticamente tras reiniciar el servidor:
sudo systemctl enable ssh
Método 2: Verificar el Puerto y la Configuración del Servidor
A veces, el puerto predeterminado 22 ha sido modificado por motivos de seguridad en el archivo de configuración. Sigue estos pasos para revisarlo:
- Abre el archivo de configuración de SSH utilizando un editor de texto con privilegios de superusuario:
sudo nano /etc/ssh/sshd_config - Busca la línea que comienza por
#Port 22oPort [número]. Asegúrate de que no esté comentada y verifica qué número de puerto utiliza. - Si has realizado algún cambio, guarda el archivo y reinicia el demonio SSH para aplicar la nueva configuración:
sudo systemctl restart ssh
Método 3: Configurar Correctamente el Cortafuegos (UFW / Firewalld)
Si el servicio está activo pero el cortafuegos bloquea el tráfico, la conexión seguirá siendo rechazada. Debes permitir explícitamente el tráfico SSH:
- Si utilizas UFW (Ubuntu/Debian), habilita el puerto o el perfil SSH con el siguiente comando:
sudo ufw allow sshosudo ufw allow 22/tcp - Recarga las reglas del cortafuegos para aplicar los cambios:
sudo ufw reload - Si tu distribución utiliza Firewalld (CentOS/Fedora), ejecuta:
sudo firewall-cmd --permanent --add-service=sshy luegosudo firewall-cmd --reload