Al conectarse al servicio SSH, a veces hay que esperar mucho tiempo hasta que la consola esté disponible para ejecutar comandos. Las causas de los retrasos son diversas, y en esta guía vamos a ver algunas razones y sus soluciones.
Estas soluciones generalmente no están relacionadas entre sí, por lo que es mejor hacer ajustes y verificar el funcionamiento de cada una por separado; de este modo, será más fácil identificar la causa real.
Los comandos proporcionados funcionan para Debian/Ubuntu. Para CentOS/Alma/Rocky, pueden diferir ligeramente. Por ejemplo, el servicio puede no llamarse "ssh", sino "sshd" — ten esto en cuenta al ejecutar los comandos. Aparte de eso, todo es igual.
1. La razón más común: esperar el servidor DNS
Abre el archivo de configuración del servicio SSH:
nano /etc/ssh/sshd_config
Desactiva la opción UseDNS para que no intente obtener una búsqueda inversa (PTR) para la IP:
UseDNS no
Después de hacer los cambios, reinicia el servicio:
service ssh restart
2. No se ha especificado el tiempo de espera de conexión
Abre el archivo de configuración del servicio SSH:
nano /etc/ssh/sshd_config
Establece el parámetro de la siguiente manera:
LoginGraceTime 10s
Después de hacer los cambios, reinicia el servicio:
service ssh restart
3. Retraso prolongado relacionado con el servicio systemd-logind
En este caso, el registro auth.log generalmente contiene eventos como:
pam_systemd(sshd:session): Failed to create session: Connection timed out
Verifica el estado del servicio:
systemctl status systemd-logind
Si es necesario, reinícialo con el comando restart.
Si el retraso persiste, abre el archivo usando vi o nano:
/etc/pam.d/common-session
Comenta la línea con el símbolo #:
#session optional pam_systemd.so
Luego, reinicia el servicio:
systemctl restart systemd-logind
Intenta nuevamente, pero recuerda que con esta configuración, la consola puede no funcionar completamente, por lo que esta opción debe considerarse como una solución temporal.