SSH 在“期望 SSH2_MSG_KEX_DH_GEX_GROUP”时被阻止,但 telnet 到端口 22 可以正常工作

SSH 在“期望 SSH2_MSG_KEX_DH_GEX_GROUP”时被阻止,但 telnet 到端口 22 可以正常工作

我正在尝试通过 SSH 连接到服务器,但是发生了以下情况:

14:14:49 9 ~$ ssh root@the-server
Connection closed by 111.112.113.114

当使用 运行 SSH 时-vvv,SSH 会在“期望 SSH2_MSG_KEX_DH_GEX_GROUP”处停止:

...
debug2: mac_setup: setup hmac-md5
debug1: kex: client->server aes256-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<8192<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP   <-- blocks 1 or 2 minutes
Connection closed by 111.112.113.114

发生了什么事?上周,SSH 运行正常,从同一台计算机到同一台服务器。除了今天我在联合办公中心外,什么都没有改变。

答案1

这:

ifconfig wlan0 mtu 576
(and then try ssh ... again)

为我解决了这个问题。

据我所知,问题在于 TCP 数据包被分割,一些中间防火墙丢弃了除第一个数据包之外的所有数据包。通过减少最大传输单元 (mtu),可以避免分割。

您可以尝试使用 1000 或 1472 代替 567,但 >= 1500(我认为是默认值)可能不起作用。

详情请见此处:http://www.snailbook.com/faq/mtu-mismatch.auto.html

答案2

@KajMagnus 建议的命令ifconfig只能解决问题,直到下次重新启动网络。要在 CentOS7(或 Red Hat 7)下永久修复,请添加

MTU=576

到相关网络接口的 /etc/sysconfig/network-scripts/ifcfg-<NIC_ID> 文件,然后重新启动网络:

sudo systemctl restart network

这将配置网络以具有正确的 MTU,以便 ssh 在重启后继续工作。

相关内容