我正在尝试通过 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(我认为是默认值)可能不起作用。
答案2
@KajMagnus 建议的命令ifconfig
只能解决问题,直到下次重新启动网络。要在 CentOS7(或 Red Hat 7)下永久修复,请添加
MTU=576
到相关网络接口的 /etc/sysconfig/network-scripts/ifcfg-<NIC_ID> 文件,然后重新启动网络:
sudo systemctl restart network
这将配置网络以具有正确的 MTU,以便 ssh 在重启后继续工作。