Sobes.tech
Junior

¿Qué hacer si la conexión SSH se cuelga?

sobes.tech AI

Respuesta de la IA

  1. Verificar la conexión de red: Asegurarse de que no haya problemas con la conexión a Internet o la red local. Hacer ping al servidor.
  2. Verificar la carga del servidor: Es posible que el servidor esté sobrecargado (CPU, RAM, I/O). Utilizar herramientas de monitoreo o intentar acceder a través de la consola del hipervisor/proveedor.
  3. Reiniciar el servicio SSH: En el lado del servidor, si hay acceso por otros medios (consola, otro servidor SSH).
    # para sistemas basados en systemd
    sudo systemctl restart sshd.service
    
    # para sistemas basados en SysV init
    sudo service ssh restart
    
  4. Verificar la configuración del servidor SSH: Archivo /etc/ssh/sshd_config, prestar atención a los parámetros ClientAliveInterval y ClientAliveCountMax.
    # /etc/ssh/sshd_config
    ClientAliveInterval 60 # enviar mensaje de vida cada 60 segundos
    ClientAliveCountMax 3  # permitir 3 mensajes de vida perdidos
    
    Después de cambiar la configuración, reiniciar el servicio SSH.
  5. Verificar la configuración del cliente SSH: Archivo ~/.ssh/config o las opciones de línea de comandos (-o). Parámetros ServerAliveInterval y ServerAliveCountMax.
    # ~/.ssh/config
    Host tu_alias_de_servidor
        Hostname tu_ip_o_nombre_de_servidor
        ServerAliveInterval 60
        ServerAliveCountMax 3
    
    O al conectarse:
    ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 usuario@tu_ip_o_nombre_de_servidor
    
  6. Verificar firewalls: Asegurarse de que los firewalls (locales en el cliente, servidor, de red) no bloqueen o terminen la conexión en el puerto 22 (o cualquier otro puerto usado por SSH).
  7. Verificar TMOUT/IDLE-timeouts: Algunos terminales o entornos tienen configuraciones de tiempo de espera de inactividad que pueden terminar la conexión. Verificar la variable TMOUT en la sesión bash en el servidor.
    # verificar la variable
    echo $TMOUT 
    
    # establecer valor (por ejemplo, 3600 segundos)
    export TMOUT=3600 
    
    Esto es una solución temporal para la sesión actual. Para cambios persistentes, editar archivos .bashrc, .profile, etc.
  8. Usar la opción -v para depuración: Detallar el proceso de conexión SSH con el cliente.
    ssh -v usuario@tu_ip_o_nombre_de_servidor
    
  9. Verificar los logs de SSH: En el lado del servidor, /var/log/auth.log o /var/log/secure (depende del SO).
    # ver las últimas entradas en el log de autenticación
    sudo tail /var/log/auth.log
    
  10. Usar un puerto o protocolo alternativo: Si el puerto estándar 22 está bloqueado en alguna parte de la red, intentar usar otro puerto, si está configurado en el servidor. O usar otro protocolo de acceso, si es posible (por ejemplo, consola).