![无法访问 SSH — 日志中显示“未收到来自 [IP] 的识别字符串”](https://linux22.com/image/491568/%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%20SSH%20%E2%80%94%20%E6%97%A5%E5%BF%97%E4%B8%AD%E6%98%BE%E7%A4%BA%E2%80%9C%E6%9C%AA%E6%94%B6%E5%88%B0%E6%9D%A5%E8%87%AA%20%5BIP%5D%20%E7%9A%84%E8%AF%86%E5%88%AB%E5%AD%97%E7%AC%A6%E4%B8%B2%E2%80%9D.png)
我在从网络外部访问 Ubuntu 服务器上的 SSH 时遇到了问题。
使用本地 IP 地址 (192.168.1.100) 访问它可以正常工作。从联网 PC 访问但使用路由器的外部 IP 地址也可以正常工作。当我尝试从我的工作 PC 访问服务器时,就会出现问题。
我不得不进行一些端口转发,因为我的工作防火墙只允许端口 80 和 443 上的出站流量。我的路由器现在将接受 443 上的连接并将它们转发到我的 Ubuntu 服务器上的端口 22,并且此配置在使用外部 IP 地址的上述测试中运行良好。然而,在工作时我仍然无法连接(顺便说一下,我使用的是 Putty),只会收到“服务器意外关闭网络连接”对话框。
昨晚检查 ssh 日志(auth.log)时,我可以看到与我的工作外部 IP 地址相关的条目,因此我知道请求已经到达服务器本身,但我找不到错误本身的任何真正解释,其内容为:
Did not receive identification string from xx.xx.xx.xx << Work IP Was Here
有人能解释一下这是什么意思吗?我需要做什么才能解决这个问题?SSH 配置非常简单,而且仅限于禁用 root 访问权限。
提前致谢
答案1
这意味着 SSH 客户端实际上并没有通过 SSH 与服务器通信。我最好的猜测是某种透明代理或 IDS 阻碍了您工作中的流量,并将其破坏得无法恢复。如果是这样,请在家中的 443/tcp 上安装 OpenVPN,并明确配置 OpenVPN 客户端以使用 HTTPS 代理连接到家中(效果很好 - 有一次我在一个极其封闭的政府网络内获得了完全的网络访问权限)。