¿Cómo acelerar el inicio de sesión SSH?

23

Desde fuera de mi casa, cada vez que inicio sesión en mi servidor Ubuntu usando SSH, me lleva unos 6 segundos obtener la solicitud de contraseña, sin embargo, cuando inicio sesión en mi servidor de alojamiento web, me lleva aproximadamente 1 segundo. ¿Qué puedo hacer para acelerar esto?

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.04
DISTRIB_CODENAME=hardy
DISTRIB_DESCRIPTION="Ubuntu 8.04.1"
$ ssh -v
OpenSSH_4.7p1 Debian-8ubuntu1.2, OpenSSL 0.9.8g 19 Oct 2007
$ cat /proc/cpuinfo
model name      : Dual-Core AMD Opteron(tm) Processor 1210
cpu MHz         : 1000.000
cache size      : 1024 KB
$ cat /proc/meminfo
MemTotal:      2074528 kB
grokus
fuente

Respuestas:

38

La razón número uno que he visto para esto es una opción de configuración en SSHD, UseDNSesta opción (habilitada por defecto) hace que el servidor realice una resolución DNS en las solicitudes entrantes. Una operación que consume mucho tiempo. He visto que los inicios de sesión van desde un minuto más esperando la solicitud de contraseña hasta menos de unos segundos. Si edita /etc/ssh/sshd_configen el servidor y agrega (si no está allí) en la parte inferior UseDNS no, reinicie el demonio SSH con service ssh restartusted y verá una mejora la próxima vez que se conecte.

Marco Ceppi
fuente
66
Es mejor arreglar su configuración de DNS.
Thorbjørn Ravn Andersen
Esto funcionó genial !! ¡Gracias! El tiempo de inicio de sesión pasó de 20-30 segundos a menos de 5 segundos :)
AntonioCS
3
¿Cuál es el beneficio de haber UseDNShabilitado?
ændrük
¡Ten cuidado! cuando configura la directiva UserDNSdespués de una Matchdirectiva, obtendrá un error: is not allowed within a Matchbloquee si reinicia el sshd, no podrá ingresar al servidor. Cometí este error y me bloquearon mi servidor. Recuerde siempre que no agregue ninguna directiva en la parte inferior sshd_configsi tiene una Matchdirectiva.
Adriano Rosa
6

Para mí, el motivo número 2 (después de la opción UseDNS del lado del servidor) para los inicios de sesión largos de SSH son los intentos del lado del cliente de conectarse usando IPv6 (que, obviamente, no está configurado correctamente en mi red, o casi cualquier otra red, para esa materia).

Vea CÓMO: Acelerar el inicio de sesión SSH en los foros de Ubuntu.

La "solución" es habilitar solo IPv4:

1) ya sea para la invocación de cliente SSH dada:

ssh -4 login@hostname

2) o globalmente en la configuración del cliente ssh en /etc/ssh/ssh_config:

Host *
   AddressFamily inet

Por supuesto, sería más correcto configurar IPv6 en su red correctamente, pero quién tiene el tiempo para eso :)

Aleksander Adamowski
fuente
3

Intente agregar la siguiente opción con su comando ssh:

-o "PreferredAuthentications=password"

(¡esto evita que ssh negocie cualquier otro método de autenticación y acelera la solicitud de contraseña!)

perseo22
fuente
2
¿Por qué usar contraseñas? ¿Por qué no llaves?
TJ Ellis
1
Fácil: ¡porque puede que no se te permita usar las teclas! (sshd no configurado para usarlas, permisos de archivos de usuario, mal etc.9
perseo22
2

Además, escriba esto en la máquina remota (como el usuario con el que iniciaría sesión) para suprimir cualquier mensaje MOTD:

touch ~/.hushlogin

No hace tanta diferencia como apagar, UseDNSpero podría ayudar en conexiones más lentas.

Oli
fuente
1
-1: MOTD solo se muestra después de un inicio de sesión exitoso. Esto no hará que la solicitud de contraseña aparezca más rápido.
Asa Ayers
2
Es cierto, pero sigue siendo un comentario útil.
sebastian_k
2

Como está utilizando una versión de Ubuntu bastante antigua, podría ser este error: https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/300151

Reiniciar dbus ( /etc/init.d/dbus restart) podría ayudar.

Marcel Stimberg
fuente
Tengo una caja 10.04 actualizada de 9.04 y 9.10. Reiniciar dbus reducido time ssh remoteServer datede 8s a 0.5s.
djeikyb