# rm-rf.es

Cómo arreglar el login lento por SSH

Es muy común encontrarnos con el problema de que al acceder vía ssh la respuesta de «login» del servidor es muy lenta, en algunos casos se puede demorar incluso más de un minuto.

Normalmente este fallo se suele deber a dos causas, aunque lo mejor para diagnosticarlo siempre es hacer ese mismo login ssh pero añadiendo verbose, que no es otra cosa que activar el debug del proceso de conexión SSH:

$ ssh foo@bar -vv

¿Cuales son entonces las causas más comunes para esta lentitud?

Por defecto SSH hace reverse dns de la IP con la que estamos conectando, aunque en caso de fallo este punto no suele demorar más de 10 ó 15 segundos la conexión, sí que conviene saber que o arreglamos la reverse DNS de nuestro hostname o deshabilitamos este chequeo en el servidor DNS

/etc/ssh/sshd_config

UseDNS no

Y el segundo punto es la autenticación. Si hacéis el debug a la conexión SSH veréis que se intentan varios métodos de autenticación hasta llegar a la auth por password. Uno de ellos suele dar muchos problemas en caso de no estar disponible, se trata de GSSAPI y Kerberos.

Os muestro un debug con problemas de autenticación GSSAPI por no estar disponible:

debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug2: we did not send a packet, disable method
debug1: Next authentication method: gssapi-with-mic

[segundos de espera...]

debug1: Unspecified GSS failure.  Minor code may provide more information
Cannot determine realm for numeric host address

[segundos de espera...]

debug1: Unspecified GSS failure.  Minor code may provide more information
Cannot determine realm for numeric host address

[segundos de espera...]

debug1: Unspecified GSS failure.  Minor code may provide more information

[segundos de espera...]

debug1: Unspecified GSS failure.  Minor code may provide more information
Cannot determine realm for numeric host address

debug2: we did not send a packet, disable method
debug1: Next authentication method: publickey
debug1: Trying private key: /home/admin/.ssh/id_rsa
debug1: Trying private key: /home/admin/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug1: Next authentication method: password

Varias veces ha intentado conectar por GSS pero no ha podido, con el consiguiente tiempo de espera (muy alto). Al final desiste e intenta autenticar por private key y finalmente password.

Para solucionarlo, desactivamos GSSAPIAuthentication y reiniciamos el demonio SSHD, veréis como el acceso ya es instantáneo:

/etc/ssh/sshd_config

GSSAPIAuthentication no
Salir de la versión móvil