我们有一台服务器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
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
我今天开始有这个问题,在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