Conexão SSH não é possível na rede local

Conexão SSH não é possível na rede local

Hoje percebi uma coisa muito estranha:

Eu tenho um servidor (executando Ubuntu Server 12.04.4 LTS) em minha rede local cuja porta SSH é acessível pela internet (posso me conectar a ele usando ssh my.internet.ip.address).

Porém, só hoje percebi que não consigo me conectar a ele na rede local ( ssh its.local.ip.addressfalha sem erros).

Verifiquei /etc/hosts.denye adicionei meu computador explicitamente /etc/hosts.allow, mas isso não mudou nada. Claro, também tentei reiniciar o ssh e todo o servidor. Não há novas atualizações disponíveis.

A conexão local falha:

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 ~ $ 

No entanto, a conexão 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 ... ]

Qual pode ser a causa deste problema e, mais importante, como posso resolvê-lo?

Nota: O aumento da verbosidade ( ssh -vvv) não mostra nada adicional no ponto em que ambas as saídas se desviam.

Responder1

O servidor está decidindo interromper a conexão, então você terá que depurar o problema do lado do servidor. Se você tiver acesso "root" no servidor, poderá executar sshdinterativamente:

/path/to/sshd -ddd -p 42

Isso iniciará uma cópia da sshdescuta na porta 42 – você pode especificar um número diferente – no modo de depuração. Ele será executado em primeiro plano, aceitando uma única conexão e imprimindo informações de depuração em seu terminal.

Agora conecte-se com seu cliente:

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

Com alguma sorte, as mensagens de depuração do lado do servidor deverão indicar por que a sessão está sendo interrompida.

Responder2

Presumo que a máquina cliente seja a mesma em ambas as capturas (mesmo que os prompts sejam diferentes). Como está permitindo a conexão TCP, provavelmente está relacionado ao DNS reverso e/ou políticas de negação na configuração do sshd.

Tente desligar o DNS no lado do servidor (UseDNS=no no sshd_config) e reiniciar o sshd (kill -1 deve ser suficiente)

Responder3

Foi relatado que esse bug afetou vários usuários.

Quando local, tente ssh -X para desabilitar o encaminhamento de x.

Além disso, a Unidade Máxima de Transmissão [MTU] pode precisar ser ajustada para o MTU do ssh_server.

** se isso não funcionar quando local, tente:

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

Se ele puder sair da sua rede, então volte para ...

Podem ser erros de configuração do servidor, verifique sshd_config para "usuários permitidos", bem como onde oknown_host seria armazenado, adicione uma versão local.ip.address do usuário "eu".

uma cópia do sshd pode ajudar

informação relacionada