Stesso problema esatto qui per accedere a un server dedicato nel datacenter online.net.
Non c'è nessun problema dopo un riavvio, non è necessario modificare MTU, la connessione ssh funziona per 1-3 settimane, quindi appare esattamente lo stesso bug, bloccando su KEXINIT, non è più possibile connettere il server ssh.
Potrebbe essere una specie di bug sshd, ma è necessariamente innescato da alcune cose nework che si verificano dopo 1-3 settimane, ho riprodotto questo problema esatto molte volte con molti server diversi su questa rete, alcuni dicono che potrebbe essere correlato a un bug Cisco, possibilmente correlato con alcune opzioni DPI.
Questo problema non si è mai verificato con altri server che gestisco in altri data center e che hanno esattamente la stessa versione di distro, config e sshd.
se non si desidera riavviare ogni 10 giorni perché i firewall del datacenter (o altre modifiche di rete) stanno facendo cose strane:
connettersi innanzitutto con una di quelle soluzioni alternative lato client:
soluzione alternativa 1, riducendo l'MTU locale lato client:
ip li set mtu 1400 dev wlan0
(1400 dovrebbe essere sufficiente ma puoi provare a usare valori più bassi se necessario)
soluzione 2, specificando il codice scelto per la connessione ssh:
ssh -c aes256-gcm@openssh.com host
(o prova con un altro codice disponibile)
Entrambe le soluzioni alternative sul lato client mi hanno permesso di connettermi e risparmiare tempo di attività; ma vuoi riparare questo lato server, per sempre, quindi non devi chiedere a tutti i client di modificare localmente il loro MTU.
Su gentoo ho appena aggiunto:
mtu_eth0="1400"
in /etc/conf.d/net
(la stessa opzione mtu dovrebbe essere disponibile da qualche parte nel file di configurazione della rete di distribuzione preferita)
Ho impostato il mtu su 1400, ma 1460 è probabilmente abbastanza nella maggior parte dei casi.
un'altra soluzione alternativa potrebbe essere quella di utilizzare le seguenti regole di iptables per gestire la frammentazione:
# / 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
(ma personalmente non ne avevo bisogno fino ad ora)
notare inoltre che i sintomi di questo problema possono anche essere:
debug1: SSH2_MSG_KEXINIT sent
non solo
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
modifica marzo 2016:
l'abbassamento del mtu a 1400 sul server funziona quasi sempre, ma recentemente ho avuto il caso in cui mtu era già stato abbassato a 1400 sul server e il problema è riapparso, e anche il client ha dovuto abbassare mtu a 1400.
Il problema è apparso anche sui moduli di accesso web in attesa che la pagina si ricaricasse fino a quando "il server ha ripristinato la connessione", risolto anche dopo che il client ha impostato mtU su 1400.
Link correlati :
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