Pregunta:
La conexión a uno de mis servidores mediante ssh tarda más de 20 segundos en iniciarse.
Esto no está relacionado con las condiciones de LAN o WAN, ya que la conexión consigo misma toma lo mismo (ssh localhost). Una vez establecida la conexión, es muy rápido interactuar con el servidor.
El uso de -vvv muestra que la conexión está bloqueada después de decir "compromiso: red". En este punto, la autenticación (aquí usando la clave) ya está hecha, como se ve aquí:
...
debug1: Authentication succeeded (publickey).
Authenticated to myserver.mydomain.com ([xx.xx.xx.xx]:22).
debug1: channel 0: new [client-session]
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
(… atrapado aquí durante 15 a 25 segundos …)
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
debug2: callback start
debug2: fd 3 setting TCP_NODELAY
debug2: client_session2_setup: id 0
...
El servidor es Ubuntu 16.04. Ya me pasó en el pasado con otro servidor (era Ubuntu 12.04), nerver encontró la solución y el problema desapareció al cabo de un tiempo …
sshd_config es el predeterminado proporcionado por Ubuntu.
Hasta ahora he intentado:
- usando -o GSSAPIAuthentication = no en el comando ssh
- usando contraseña en lugar de una clave
- usando UsePrivilegeSeparation no en lugar de sí, en sshd_config
Respuesta:
Probablemente sea un problema con D-Bus
y systemd
. Si el servicio dbus
se reinicia por algún motivo, también deberá reiniciar systemd-logind
.
Puede verificar si este es el problema abriendo el registro del demonio ssh (en Ubuntu debería ser /var/log/auth.log
) y verificar si tiene estas líneas:
sshd[2721]: pam_systemd(sshd:session): Failed to create session: Connection timed out
Si es así, simplemente reinicie el servicio systemd-logind
:
systemctl restart systemd-logind
Tuve este mismo problema en CentOS 7, porque se reinició el D-Bus
messagebus
(que es como se llama al servicio D-Bus
en CentOS).