ESC

Start typing to search across invoices, services, domains, tickets, and more...

Search... Ctrl+K
Servidores Linux

Cómo solucionar errores de conexión SSH en Linux

7 pasos 14 min de lectura 1621 vistas 87
Contenido

Perder el acceso SSH es uno de los problemas más comunes en un servidor. Esta guía le ofrece un proceso paso a paso para solucionar problemas de SSH en Linux y averiguar rápidamente si la culpa es de la red, el puerto, el servicio sshd, el firewall o un bloqueo de fail2ban, y cómo entrar a través de la consola VNC cuando SSH no está disponible en absoluto. Se aplica a VPS y servidores dedicados con Debian/Ubuntu o CentOS/Rocky/AlmaLinux.

Paso 1: Lea el error de SSH para acotar la causa

Cada error apunta en una dirección distinta, así que léalo con atención primero:

  • Connection refused (conexión rechazada): el servidor es accesible, pero nada escucha en ese puerto; sshd está detenido o el puerto es incorrecto.
  • Connection timed out (tiempo de espera agotado): no hay ninguna respuesta; IP incorrecta, servidor caído, un firewall que descarta paquetes o su IP está bloqueada.
  • Permission denied (permiso denegado): la red y el servicio funcionan; el problema es el nombre de usuario, la contraseña o la clave.
  • Connection reset / closed by remote host (conexión restablecida o cerrada por el host remoto): a menudo se debe a fail2ban, hosts.deny o una configuración de sshd dañada.
ssh: connect to host 203.0.113.10 port 22: Connection refused
ssh: connect to host 203.0.113.10 port 22: Connection timed out
[email protected]: Permission denied (publickey,password).
kex_exchange_identification: read: Connection reset by peer

Paso 2: Pruebe la conectividad del puerto SSH desde su equipo

Compruebe si el puerto es accesible y use ssh -vvv para ver el handshake en detalle. Si funciona desde otra red, como el punto de acceso de su teléfono, el problema está en su red local o en su proveedor de internet, no en el servidor.

# Windows PowerShell
Test-NetConnection 203.0.113.10 -Port 22

# macOS / Linux
nc -vz -w 5 203.0.113.10 22

# La salida detallada del cliente SSH muestra dónde falla
ssh -vvv -p 22 [email protected]

Paso 3: Inicie sesión a través de la consola VNC

Cuando SSH no funcione, vaya al área de cliente → My Products & Services (Mis productos y servicios) → seleccione el servidor → Manage (Administrar) y abra la consola VNC (la etiqueta puede variar según el producto; abra un ticket de soporte si no la encuentra). VNC equivale a conectar un monitor y un teclado: no depende de SSH ni de la configuración de red. Inicie sesión como root con su contraseña y realice allí las siguientes comprobaciones.

# En la consola VNC
localhost login: root
Password:
# Después, confirme que la red está activa
ip a
ping -c 3 1.1.1.1

Paso 4: Compruebe el servicio sshd y el puerto de escucha

Asegúrese de que sshd se esté ejecutando. Si aparece como failed, ejecute sshd -t para encontrar errores de sintaxis, corríjalos y reinicie. Luego use ss para confirmar que el puerto en el que realmente escucha coincide con el que usa para conectarse.

# Debian / Ubuntu (nombre del servicio: ssh)
systemctl status ssh
# CentOS / Rocky / AlmaLinux (nombre del servicio: sshd)
systemctl status sshd

sshd -t                       # config syntax check
systemctl restart sshd        # or: systemctl restart ssh
ss -tlnp | grep sshd
# LISTEN 0 128 0.0.0.0:22  0.0.0.0:*  users:(("sshd",pid=812,fd=3))

Paso 5: Asegúrese de que el firewall permite el puerto SSH

Revise las reglas del firewall que use su sistema y confirme que el puerto SSH (22 o su puerto personalizado) está permitido. Cambiar el puerto SSH y olvidarse de abrirlo es la causa más común de los tiempos de espera agotados.

# firewalld (CentOS / Rocky / AlmaLinux)
firewall-cmd --list-all
firewall-cmd --permanent --add-service=ssh && firewall-cmd --reload

# ufw (Debian / Ubuntu)
ufw status verbose
ufw allow 22/tcp

# Reglas directas (iptables / nftables)
iptables -S | head -n 30
nft list ruleset | head -n 50

Paso 6: Compruebe si fail2ban ha bloqueado su IP

Tras varios intentos de inicio de sesión fallidos, fail2ban bloquea automáticamente la IP de origen, lo que se manifiesta como tiempos de espera o rechazos repentinos. Consulte su IP pública en un sitio web de tipo "cuál es mi IP" y luego compruébela y desbloquéela en el servidor.

fail2ban-client status sshd
fail2ban-client set sshd unbanip 198.51.100.25

# En sistemas antiguos, revise también TCP wrappers
cat /etc/hosts.deny

Paso 7: Lea los registros de SSH

Si todo lo anterior parece correcto, los registros de sshd suelen indicar el motivo exacto: permisos incorrectos, un usuario sin permiso para iniciar sesión, un formato de clave no válido, etc. Un disco lleno también puede impedir el inicio de sesión.

# Registros recientes de sshd
journalctl -u sshd -n 50 --no-pager      # CentOS / Rocky / AlmaLinux
journalctl -u ssh -n 50 --no-pager       # Debian / Ubuntu
tail -n 50 /var/log/secure               # RHEL family
tail -n 50 /var/log/auth.log             # Debian / Ubuntu

# Un disco lleno también puede impedir el inicio de sesión
df -h /
Si el servidor no responde al ping y la consola VNC no se abre o muestra algo anómalo, es posible que el servidor o la red estén caídos. Abra un ticket de soporte de inmediato para que nuestros ingenieros lo revisen.

Preguntas frecuentes

Tras reinstalar el sistema operativo, SSH avisa de que la clave del host ha cambiado.

Su equipo aún conserva la huella digital antigua. Ejecute ssh-keygen -R server-IP en su equipo local para eliminarla y vuelva a conectarse.

Solo mi red no puede conectarse; las demás sí.

Es posible que fail2ban haya bloqueado su IP o que su red bloquee el puerto. Pruebe con otra red, o desbloquee su IP o cambie a otro puerto a través de VNC.

Olvidé la contraseña de root que necesito para VNC.

Restablézcala desde el área de cliente si su producto lo permite, o arranque en modo monousuario a través de VNC para restablecerla. Abra un ticket de soporte si no se siente cómodo haciéndolo.

¿Sigue con problemas después de seguir estos pasos? Abra un ticket de soporte y el equipo técnico 24/7 de IMIDC le ayudará. Incluya la IP del servidor, el sistema operativo, los comandos que ejecutó y una captura de pantalla del error para que podamos localizar el problema más rápido.

¿Fue útil la respuesta?

Tutoriales relacionados