一组工作站拒绝互相SSH连接,但可以连接到其他人

我有一组Ubuntu 14.04工作站,都是通过镜像部署的克隆。 成像后,他们被分配一个静态IP,他们也删除/重新生成他们的主机密钥。 他们每个人自己看起来都很好,可以连接到文件服务器,计算机集群等等,但是他们不能通过SSH连接到对方,只是无休止地挂起(直到他们超时~10分钟) debug1: SSH2_MSG_KEXINIT sent

我可以通过一台Windows笔记本电脑,一台旧的12.04工作站或一台12.04的服务器,或者从一台工作站到另一台工作站,通过其他任何方式跳到另一台,但不是很喜欢。

我能够通过在我的networking连接中引入PMTU黑洞来重现症状。

在Ubuntu 12.04上,密钥交换初始化消息的大小约为1KB,这在典型的networkingMTU范围内。 在Ubuntu 14.04上,密钥交换初始化消息已经增长到几乎2KB,这使得它在连接期间成为第一个超过典型networkingMTU的消息。

这意味着MTU问题的症状将会改变。 之前,您可能已经能够连接,但通过连接传输大文件或者运行快速生成大量输出的命令可能会导致连接中断。 但是现在MTU问题导致连接在authentication之前停止。

在确定根本原因之前,减lessnetworking接口上的MTU是可用的解决方法。 它也可以用来确认问题确实与MTU有关。 如果networking接口被称为eth0 ,你可以试试这个命令:

 ifconfig eth0 mtu 1280