¿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

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.


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 :)


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!)


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.


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.