O mesmo problema exato aqui para acessar um servidor dedicado no datacenter online.net.
Não há problema após uma reinicialização, não há necessidade de alterar o MTU, a conexão ssh funciona por 1-3 semanas e, em seguida, aparece exatamente o mesmo bug, bloqueando o KEXINIT, não é mais possível conectar o servidor ssh.
Pode ser algum tipo de bug do sshd, mas é necessariamente acionado por algumas coisas novas ocorrendo após 1-3 semanas. Reproduzi esse problema exato muitas vezes com muitos servidores diferentes nesta rede, alguns dizem que pode estar relacionado a um bug da Cisco, possivelmente relacionado a algumas opções de DPI.
Esse problema nunca aconteceu com outros servidores que eu gerencio em outros datacenters e que possuem exatamente a mesma distribuição, configuração e versão sshd.
se você não quiser reiniciar a cada 10 dias, porque os firewalls do datacenter (ou outros ajustes na rede) estão fazendo coisas estranhas:
primeiro conecte-se a uma dessas soluções alternativas do lado do cliente:
solução alternativa 1, diminuindo sua MTU local do lado do cliente:
ip li set mtu 1400 dev wlan0
(1400 deve ser suficiente, mas você pode tentar usar valores mais baixos, se necessário)
solução alternativa 2, especificando o código escolhido para a conexão ssh:
ssh -c aes256-gcm@openssh.com host
(ou tente com qualquer outro código disponível)
Ambas as soluções do lado do cliente foram feitas para mim; eu poderia conectar e economizar meu tempo de atividade; mas você deseja corrigir esse lado do servidor para sempre, para que não precise pedir a todos os clientes para ajustar localmente sua MTU.
No gentoo, acabei de adicionar:
mtu_eth0="1400"
em /etc/conf.d/net
(a mesma opção mtu deve estar disponível em algum lugar no seu arquivo de configuração de rede de distribuição preferido)
Eu configurei o mtu para 1400, mas 1460 provavelmente é suficiente na maioria dos casos.
outra solução alternativa poderia ser usar as seguintes regras do iptables para gerenciar a fragmentação:
# / sbin / iptables -I OUTPUT -p tcp --tcp-flags SYN, RST SYN -j TCPMSS --clamp-mss-to-pmtu
# / sbin / ip6tables -I OUTPUT -p tcp --tcp-flags SYN, RST SYN -j TCPMSS --clamp-mss-to-pmtu
(mas eu pessoalmente não precisava deste até agora)
Observe também que os sintomas desse problema também podem ser:
debug1: SSH2_MSG_KEXINIT sent
não apenas
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
editar março de 2016:
abaixar o mtu para 1400 no servidor quase sempre funciona, mas recentemente tive o caso em que o mtu já estava reduzido para 1400 no servidor e o problema reapareceu, e o cliente também teve que abaixar o mtu para 1400.
O problema também apareceu nos formulários de logon da web, aguardando o recarregamento da página até dizer "o servidor redefiniu a conexão", também corrigido após o cliente definir o mtU para 1400.
Links Relacionados :
https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/1254085
http://www.held.org.il/blog/2011/05/the-myterious-case-of-broken-ssh-client-connection-reset-by-peer/
https://nowhere.dk/articles/natty-narwhal-problems-connecting-to-servers-behind-cisco-firewalls-using-ssh
/programming/2419412/ssh-connection-stop-at-debug1-ssh2-msg-kexinit-sent
http://www.1-script.com/forums/ssh/ssh-hang-after-ssh2-msg-kexinit-sent-10616-.htm
http://www.snailbook.com/faq/mtu-mismatch.auto.html