SSH访问问题:debug1:期望SSH2_MSG_KEX_DH_GEX_REPLY

我们有一台服务器XXX在亚马逊EC2上。

SSH在标准(22)端口上运行。

我把我的pubkey放在/.ssh/authorized_keys文件中

有趣的是,这是昨天工作很好!

但今天,我不知道发生了什么事! 我只是无法login。

ssh -vvvv服务器名称

被卡住了

debug1:期待SSH2_MSG_KEX_DH_GEX_REPLY

我检查了我的公钥,它在那里! (我怎么检查?我问其他人检查)

然后我用另一台电脑(Windows 7 +腻子),并把我的新公钥。 和什么? 我能够login! 而这是与Win7的另一台计算机是在同一个局域网,表明外部IP是相同的。

我的私钥适用于其他服务器,但不适用于此。

这东西是杀了我)))))

绝对奇怪。

请帮忙!

升级我的Ubuntu客户端机器后,我遇到了同样的问题。 我通过减less/ etc / ssh / ssh_config中的“Ciphers”行来解决我的问题。 如果你在命令行中指定了密码(例如:ssh -c username @ hostname)

来自这里的提示:

https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/708493/comments/39

更改networking接口MTU来解决它。 这是Ubuntu 14.04的一个bug。

这对我工作:

 sudo ip li set mtu 1200 dev wlan0 

要么

 sudo ifconfig wlan0 mtu 1200 

SSH无法连接到VPN主机 – 挂在'期待SSH2_MSG_KEX_ECDH_REPLY'

在这里访问online.net数据中心的专用服务器也是一样的问题。

没有问题重新启动后,无需更改MTU,SSH连接工作1-3周,然后出现这个完全相同的错误,在KEXINIT阻塞,没有更多的可能连接SSH服务器。

它可能是某种sshd错误,但它必然是由1-3周后发生的一些新东西引起的,我在这个networking上用许多不同的服务器多次重复了这个确切的问题,有人说这可能与一个思科错误有关,可能与一些新闻部的选项有关。

在其他数据中心pipe理的其他服务器上也没有发生过这种问题,而且这些服务器具有完全相同的发行版,configuration和sshd版本。

如果你不想每隔10天重新启动一次,因为数据中心防火墙(或其他networking调整)做的很奇怪:

首先连接一个客户端解决方法:

解决方法1,降低本地客户端MTU:

 ip li set mtu 1400 dev wlan0 

(1400应该足够了,但如果需要,你可以尝试使用较低的值)

解决方法2,为ssh连接指定select的密码:

 ssh -c [email protected] host 

(或尝试与任何其他可用的密码)

这两种客户端解决scheme都为我所用,我可以连接并保存正常运行时间; 但是你想永远修复这个服务器端,所以你不必要求每个客户端在本地调整他们的MTU。

在gentoo我刚刚添加:

 mtu_eth0="1400" 

在/etc/conf.d/net中

(相同的mtu选项应该可以在您首选的发行版networkingconfiguration文件中find)

我已经把mtu设置为1400,但在大多数情况下,1460就足够了。

另一个帮助解决方法可能是使用以下iptables规则来pipe理碎片:

#/ 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

(但是我个人直到现在都不需要这个)

还要注意这个问题的症状还可以是:

 debug1: SSH2_MSG_KEXINIT sent 

不只是

 debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY 

编辑三月2016:

  • 把服务器上的mtu降到1400,大多数情况下是工作的,但是最近我的情况是服务器上的mtu已经降到1400了,问题又出现了,客户也不得不把mtu降到1400。

  • 这个问题也出现在等待页面重新加载的网页login表单上,直到“服务器已经重置连接”,客户端设置mtU为1400后也被修复。

    相关链接 :

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

我今天开始有这个问题,在Windows上(使用Git发布的ssh)和Ubuntu。

这似乎是OpenSSH上的一个错误,在LauchPad上有一个问题。

它在Windows上为我工作,迫使3des-cbc密码和Ubuntu上的密钥。

在我的情况下,我没有权限降低MTU的大小。 手动指定密码不起作用。

我可以通过指定一个缩短MAC列表后连接,例如:

 ssh -o MACs=hmac-sha2-256 <HOST> 

我们解决了在/ etc / ssh / ssh_config中注释掉密码的问题

选项对话框看起来很清楚,因为我改变了腻子协商密钥交换和解决问题的顺序。

cmiiw

  • 检查你的〜/ .ssh / authorized_keys权限,应该是600

  • 请检查/ var / log / secure,/ var / log / messages或/ var / log / auth