La conexión SSH no es posible en la red local

La conexión SSH no es posible en la red local

Hoy me di cuenta de una cosa muy extraña:

Tengo un servidor (que ejecuta Ubuntu Server 12.04.4 LTS) en mi red local a cuyo puerto SSH se puede acceder a través de Internet (puedo conectarme a él usando ssh my.internet.ip.address).

Sin embargo, recién hoy me di cuenta de que no puedo conectarme a él en la red local ( ssh its.local.ip.addressfalla sin errores).

Revisé /etc/hosts.denyy agregué mi computadora explícitamente en /etc/hosts.allow, pero esto no cambió nada. Por supuesto, también intenté reiniciar ssh y todo el servidor. No hay nuevas actualizaciones disponibles.

La conexión local falla:

myself@my-desktop ~ $ ssh -v its.local.ip.address
OpenSSH_6.2p2 Ubuntu-6ubuntu0.4, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to its.local.ip.address [its.local.ip.address] port 22.
debug1: Connection established.
debug1: identity file /home/myself/.ssh/id_rsa type -1
debug1: identity file /home/myself/.ssh/id_rsa-cert type -1
debug1: identity file /home/myself/.ssh/id_dsa type -1
debug1: identity file /home/myself/.ssh/id_dsa-cert type -1
debug1: identity file /home/myself/.ssh/id_ecdsa type -1
debug1: identity file /home/myself/.ssh/id_ecdsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2p2 Ubuntu-6ubuntu0.4
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1.4
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.4 pat OpenSSH_5*
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
Connection closed by its.local.ip.address
myself@my-desktop ~ $ 

Sin embargo, la conexión remota funciona:

myself@my-desktop ~ $ ssh -v my.internet.ip.address
OpenSSH_6.2p2 Ubuntu-6ubuntu0.4, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to my.internet.ip.address [my.internet.ip.address] port 22.
debug1: Connection established.
debug1: identity file /home/myself/.ssh/id_rsa type -1
debug1: identity file /home/myself/.ssh/id_rsa-cert type -1
debug1: identity file /home/myself/.ssh/id_dsa type -1
debug1: identity file /home/myself/.ssh/id_dsa-cert type -1
debug1: identity file /home/myself/.ssh/id_ecdsa type -1
debug1: identity file /home/myself/.ssh/id_ecdsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2p2 Ubuntu-6ubuntu0.4
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1.4
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.4 pat OpenSSH_5*
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA [... hidden here ...]
debug1: Host 'my.internet.ip.address' is known and matches the ECDSA host key.
debug1: Found key in /home/myself/.ssh/known_hosts:4
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: password
debug1: Next authentication method: password
[email protected]'s password: 
[ ... everything works just fine ... ]

¿Cuál puede ser la causa de este problema y más importante cómo puedo solucionarlo?

Nota: Aumentar la detalle ( ssh -vvv) no muestra nada adicional en el punto donde ambas salidas se desvían.

Respuesta1

El servidor está decidiendo interrumpir la conexión, por lo que tendría que depurar el problema desde el lado del servidor. Si tiene acceso "root" en el servidor, puede ejecutar sshdinteractivamente:

/path/to/sshd -ddd -p 42

Esto iniciará una copia de sshdescucha en el puerto 42 (puede especificar un número diferente) en modo de depuración. Se ejecutará en primer plano, aceptará una única conexión e imprimirá información de depuración en su terminal.

Ahora conéctate con tu cliente:

ssh -v -p 42 its.local.ip.address

Con un poco de suerte, los mensajes de depuración del lado del servidor deberían indicar por qué se cierra la sesión.

Respuesta2

Supongo que la máquina cliente es la misma en ambas capturas (aunque las indicaciones difieren). Como permite la conexión TCP, probablemente esté relacionado con DNS inverso y/o políticas de denegación en la configuración sshd.

Intente desactivar DNS en el lado del servidor (UseDNS=no en sshd_config) y reinicie sshd (kill -1 debería ser suficiente)

Respuesta3

Se informa que este error ha afectado a múltiples usuarios.

Cuando sea local, intente ssh -X para deshabilitar el reenvío de x.

Además, es posible que sea necesario ajustar la Unidad de transmisión máxima [MTU] a la MTU del ssh_server.

** si eso no funciona en local, prueba:

 myself@my-desktop ~ $ ssh -v my.internet.ip.address

Si puede salir de su red, entonces vuelva a entrar...

Podrían ser errores de configuración del servidor, verifique sshd_config para "usuarios permitidos", así como dónde se almacenaría el host_conocido, agregue una versión local.ip.address del usuario "yo".

una copia de sshd podría ayudar

información relacionada