Řešení 1:
Chcete-li to vyřešit, změňte MTU síťového rozhraní. Toto je chyba pro ubuntu 14.04.
Toto fungovalo pro mě:
sudo ip li set mtu 1200 dev wlan0
NEBO
sudo ifconfig wlan0 mtu 1200
ssh se nedaří připojit k hostiteli VPN – zablokuje se na 'expecting SSH2_MSG_KEX_ECDH_REPLY'
Řešení 2:
Přesně stejný problém je zde pro přístup k dedikovanému serveru v online.net datacentru.
Po restartu není žádný problém, není třeba měnit MTU, připojení ssh funguje 1-3 týdny, pak se objeví přesně stejná chyba, která blokuje na KEXINIT, již není možné připojit ssh server.
Může to být nějaký druh chyby sshd, ale je to nutně vyvoláno nějakými síťovými záležitostmi, které se dějí po 1-3 týdnech, přesně tento problém jsem opakoval mnohokrát s mnoha různými servery v této síti, někteří říkají, že by to mohlo souviset s chybou cisco, možná souvisí s některými možnostmi DPI.
Tento problém se nikdy nestal s jinými servery, které spravuji v jiných datových centrech a které mají přesně stejnou verzi distro, konfigurace a sshd.
pokud nechcete každých 10 dní restartovat, protože firewally datového centra (nebo jiná síťová vylepšení) dělají divné věci:
nejprve se připojte k jednomu z těchto řešení na straně klienta:
Řešení 1, snížení místní MTU na straně klienta:
ip li set mtu 1400 dev wlan0
(1400 by mělo stačit, ale v případě potřeby můžete zkusit použít nižší hodnoty)
řešení 2, zadání zvolené šifry pro připojení ssh:
ssh -c [email protected] host
(nebo zkuste použít jinou dostupnou šifru )
Obě tato řešení na straně klienta mi umožnila připojit se a ušetřit dobu provozu; ale chcete to opravit na straně serveru navždy, takže nemusíte žádat každého klienta, aby lokálně upravil svou MTU.
Na gentoo jsem právě přidal:
mtu_eth0="1400"
v /etc/conf.d/net
(stejná možnost mtu by měla být dostupná někde ve vašem preferovaném konfiguračním souboru sítě distro)
Nastavil jsem mtu na 1400, ale 1460 pravděpodobně ve většině případů stačí.
dalším pomocným řešením by mohlo být použití následujících pravidel iptables ke správě fragmentace:
# /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
(ale já osobně jsem to do teď nepotřeboval)
také si všimněte, že příznaky tohoto problému mohou být také:
debug1: SSH2_MSG_KEXINIT sent
nejen
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
upravit březen 2016:
-
Snížení mtu na 1400 na serveru většinou funguje, ale nedávno jsem měl případ, kdy bylo mtu na serveru již sníženo na 1400 a problém se znovu objevil a klient také musel snížit mtu na 1400.
-
Problém se objevil také u webových přihlašovacích formulářů čekajících na opětovné načtení stránky, dokud neřekne „server resetoval připojení“, také opraven poté, co klient nastavil mtU na 1400.
související odkazy :
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
https://stackoverflow.com/questions/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
Řešení 3:
V mém případě nemám oprávnění snížit velikost MTU. Ruční zadání šifry nefunguje.
Mohu se připojit po zkrácení seznamu MAC zadáním jednoho, např.:
ssh -o MACs=hmac-sha2-256 <HOST>
Řešení 4:
Měl jsem stejný problém poté, co jsem upgradoval svůj klientský počítač Ubuntu. Můj problém jsem vyřešil zmenšením velikosti řádku „Šifry“ v /etc/ssh/ssh_config. Funguje to také, pokud zadáte šifru v příkazovém řádku (např.:ssh -c [email protected])
Tip odtud:
https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/708493/comments/39
Řešení 5:
Tento problém jsem začal mít dnes na Windows (ssh distribuovaném s Git) a Ubuntu.
Zdá se, že jde o chybu na OpenSSH, problém je na LauchPadu.
Ve Windows mi fungovalo vynucení šifry 3des-cbc a klíče na Ubuntu.