我的服务器(托管在 AWS 上)出现了一个奇怪的问题。我可以 ping我办公室的笔记本电脑,似乎我也可以通过 telnet 连接端口 22,如下所示:
$ telnet 10.151.127.4 22
telnet 的输出:
SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8
但是如果我尝试连接 Putty,当我尝试单击“打开”时我会收到以下消息:
服务器意外关闭网络连接
注意:其他站点的其他同事可以连接到它。
注意 2:我可以 ping 它
注意 3:我需要从 Windows 连接
Putty日志:
2017-11-06 14:09:07 Looking up host "10.151.127.4"
2017-11-06 14:09:07 Connecting to 10.151.127.4 port 22
2017-11-06 14:09:07 Server version: SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8
2017-11-06 14:09:07 Using SSH protocol version 2
2017-11-06 14:09:07 We claim version: SSH-2.0-PuTTY_Release_0.62
2017-11-06 14:09:07 Doing Diffie-Hellman group exchange
2017-11-06 14:09:07 Server unexpectedly closed network connection
答案1
您的客户端和服务器在某些方面存在分歧密钥交换过程。可能服务器已经过度“强化”,需要比旧版 PuTTY 所能提供的更强大的 DH 组。
要了解确切的详细信息,您必须启用服务器侧,即首先切断连接的一端。
无论如何,PuTTY 0.62 于 2011 年发布 - 差不多六年前。从那时起,它已经收到了很多更新(最新版本是 0.70),而且最新版本更有可能被您的服务器接受。
更重要的是,PuTTY 0.68 及更高版本支持 ECDH,即使用 P-256 和 X25519 的椭圆曲线密钥交换。此功能完全取代了传统的 DH,速度更快、更安全,尤其是 X25519 很可能被纳入最严格的复制并粘贴配置。
答案2
正如@grawity 在评论中所说,我的 Putty 版本已经过时了。我已将其更新至 0.70,现在可以正常工作了。
因此,如果您可以 ping 通您的机器并且 telnet 可以连接到端口 22,而 putty 却出现故障,那么解决办法就是更新您的 putty。