ssh conexión muy lenta

18

Tengo varios sistemas remotos, y uno de ellos, un linode que ejecuta Debian, es muy lento para usar ssh, tarda aproximadamente 20-25 segundos cada vez. Esto parece haber sucedido relativamente recientemente. He intentado fijar GSSAPIAuthenticationa noo yescomo se sugiere en varias respuestas a preguntas similares, y que no hace una diferencia. Tampoco hace ninguna diferencia si inicio sesión usando el fqdn o la dirección IP. Tengo el mismo retraso de envío desde mi caja de Linux local o mi Macintosh local. No tengo esa demora en pasar del linóleo al linux box local. Tengo otro sistema remoto que usa la misma versión de Debian y puedo usarlo en 2 segundos. La única diferencia entre el/etc/ssh/sshd_config Los archivos en los dos cuadros de Debian es que el rápido no permite contraseñas y también especifica una lista de cifrados permitidos.

Si inicio sesión usando ssh -vvv root@linode, el retraso ocurre en la parte marcada con >>>>>>

debug2: key: /root/.ssh/id_ecdsa ((nil))
debug2: key: /root/.ssh/id_ed25519 ((nil))
debug3: send packet: type 5
debug3: receive packet: type 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50

>>>>>>

debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /root/.ssh/id_rsa
debug3: send_pubkey_test

(Esto es solo un registro parcial - registro completo disponible a pedido)

No puedo encontrar nada sobre el inicio de sesión en /var/log/auth.logo /var/log/syslogdurante el tiempo de retraso; luego, solo recibo

Jul 27 13:46:43 linode sshd[23049]: Accepted publickey for root from 199.241.27.237 port 51464 ssh2: RSA 89:08:ef:44:48:a4:84:b7:0a:de:14:65:1b:d9:86:f8
Jul 27 13:46:43 linode sshd[23049]: pam_unix(sshd:session): session opened for user root by (uid=0)
Jul 27 13:46:43 linode systemd-logind[3235]: New session 10361 of user root.
Paul Tomblin
fuente

Respuestas:

25

Si la creación de la conexión es lenta, pero es una velocidad normal después de haberla creado, lo más probable es que tenga un problema de que el servidor está realizando una búsqueda DNS inversa para el cliente y que, por alguna razón, falla.

En general, al depurar esto, también puede intentar iniciar sesión desde dos terminales. Con el primer inicio de sesión, mire el sshdregistro en el servidor, mientras intenta iniciar sesión desde el segundo. Eso le brinda más información sobre lo que el servidor está haciendo (o esperando).

Puede intentar encontrar pruebas de esto por la causa de la búsqueda inversa de DNS configurando uno, o ambos, de lo siguiente en /etc/ssh/sshd_config:

UseDNS no
UsePAM no

y ver si eso acelera la creación de la conexión. Si lo hace, a menudo puede dejar las cosas de esa manera hasta que se resuelvan (si eso le importa).

Si se trata de un problema de búsqueda inversa de DNS, esto depende del servidor DNS en el que está utilizando la máquina en la que inicia sesión. Según Wikipedia, no todas las direcciones IP tienen una entrada inversa, ya que este no es un requisito de estándares real. Pero lo más probable es que este sea un problema de configuración.

Anthon
fuente
Mi nuevo ISP (¡fibra de 1000Mbps para el hogar!) No tiene una entrada rDNS para mi IP. Así que UseDNS nosolucioné el problema tanto como se solucionará.
Paul Tomblin
2
Agregar UseDNS no funcionó para mí.
Jose 'Vargas
Intenté todo esto, sin dados. Eventualmente solo reinicié el cliente y todo estuvo bien.
medley56
Esto fue muy útil ... descubrí que el DNS del servidor estaba mal configurado. Arreglo que reparó las conexiones ssh lentas.
TemporalWolf
Agregar UseDNS = no y reiniciar sshd funcionó para mí. CentOS 7.
pzy
-2

En los sistemas Debian / Ubuntu, el truco es eliminar el "avahi-daemon" del sistema y el problema desaparece.

apt-get -y purge avahi*
TRANCEMANIAC
fuente
2
No es una buena idea poner -yel comando de purga, el usuario debe revisar la acción antes de la ejecución.
Rabin el