[SOLUCIONADO] Error SSH Connection Refused en Linux (Paso a Paso)
El error SSH Connection Refused (o connection refused ssh) ocurre cuando tu cliente intenta conectarse a un servidor remoto, pero el puerto 22 rechaza la solicitud. Esto sucede principalmente porque el servicio OpenSSH está detenido, el puerto SSH fue cambiado o el firewall (UFW/iptables) bloquea el puerto 22.
El Diagnóstico Rápido
sudo systemctl start sshdssh -p PUERTO usuario@hostEl error SSH Connection Refused (o connection refused ssh) ocurre cuando tu cliente intenta conectarse a un servidor remoto, pero el puerto 22 rechaza la solicitud. Esto sucede principalmente porque el servicio OpenSSH está detenido, el puerto SSH fue cambiado o el firewall (UFW/iptables) bloquea el puerto 22.
Solución Rápida (1 Minuto):
- Inicia SSH:
sudo systemctl enable --now sshd- Abre el puerto en el firewall:
sudo ufw allow 22/tcp && sudo ufw reload- Verifica el puerto actual:
grep -i "port" /etc/ssh/sshd_config
La Solución Paso a Paso
-
1
Paso 1: Verificar el estado del servicio OpenSSH en el servidor
Si tienes acceso local o mediante la consola KVM / Web Console de tu VPS, comprueba si el demonio SSH está ejecutándose:
BASHsudo systemctl status ssh || sudo systemctl status sshdSi el estado es
inactiveodead, inicialízalo y habilítalo para que inicie automáticamente con el sistema:BASHsudo systemctl enable --now ssh -
2
Paso 2: Comprobar el puerto SSH activo (Puerto 22 u otro)
Si el servicio está activo pero sigues recibiendo el error, revisa si se cambió el puerto 22 por defecto en el archivo de configuración:
BASHsudo grep -i "Port" /etc/ssh/sshd_configSi el archivo muestra un puerto alternativo (por ejemplo
Port 2222), debes especificarlo en tu cliente SSH:BASHssh usuario@tu-ip -p 2222 -
3
Paso 3: Configurar reglas del Firewall (UFW / iptables / Firewalld)
Asegúrate de que el cortafuegos permita las conexiones entrantes en el puerto de SSH (puerto 22):
BASH# Para UFW (Ubuntu / Debian) sudo ufw allow ssh sudo ufw reload # Para Firewalld (RHEL / CentOS / AlmaLinux) sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
Consejo de Prevención
Prácticas de seguridad recomendadas:
- No uses el puerto 22 por defecto en servidores de producción expuestos a internet.
- Deshabilita el acceso directo al usuario root modificando
/etc/ssh/sshd_config(PermitRootLogin no). - Configura la autenticación mediante Llaves SSH (
SSH Keys) y deshabilita el acceso por contraseña.