SSH 客户端拒绝连接任何服务器(连接被拒绝)

SSH 客户端拒绝连接任何服务器(连接被拒绝)

突然间,我的 SSH 客户端决定停止连接任何服务器(无论它是否是 SSH 服务器)并输出以下错误:

ssh: connect to host x.x.x.x port 22: Connection refused

请注意,这不是一个简单的设置错误。我完全知道我尝试连接的主机上运行着一个 SSH 服务器,以下情况可以证明这一点:

➜  ~ sudo nmap -sS 192.168.0.200
Password:

Starting Nmap 7.01 ( https://nmap.org ) at 2018-04-01 10:58 IST
Nmap scan report for 192.168.0.200
Host is up (0.0035s latency).
Not shown: 996 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh   <========================
80/tcp  open  http
81/tcp  open  hosts2-ns
443/tcp open  https
MAC Address: B8:27:EB:7C:24:64 (Raspberry Pi Foundation)

Nmap done: 1 IP address (1 host up) scanned in 0.47 seconds

我也可以成功地通过 telnet 进入它(没有“连接被拒绝”消息)

➜  ~ telnet 192.168.0.200 22
Trying 192.168.0.200...
Connected to 192.168.0.200.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4p1 Raspbian-10+deb9u2

然而...

➜  ~ ssh [email protected]
ssh: connect to host 192.168.0.200 port 22: Connection refused

这表明这不是我的服务器或我的机器本身的错误,而是 SSH 客户端的问题,因为它无法连接到明显打开的端口和 SSH 服务端口。有趣的是,它无法连接到任何地址,无论该地址是否可访问,这进一步让我认为这是我的 SSH 客户端的问题,而不是防火墙的问题:

➜  ~ ssh 1.1.1.1
ssh: connect to host 1.1.1.1 port 22: Connection refused
➜  ~ ssh 23.23.23.23
ssh: connect to host 23.23.23.23 port 22: Connection refused
➜  ~ ssh 232.221.231.3
ssh: connect to host 232.221.231.3 port 22: Connection refused
➜  ~ ssh 192.168.0.0
ssh: connect to host 192.168.0.0 port 22: Connection refused
➜  ~ ssh 123.123.0.1
ssh: connect to host 123.123.0.1 port 22: Connection refused

这怎么可能?SSH 甚至不尝试连接并声称“连接被拒绝”。罪魁祸首可能是什么?

附加信息:

➜  ~ uname -a
Darwin MacBook-Air.local 17.4.0 Darwin Kernel Version 17.4.0: Sun Dec 17 09:19:54 PST 2017; root:xnu-4570.41.2~1/RELEASE_X86_64 x86_64

答案1

事实证明这是一个简单的解决方案。如果其他人也遇到这种情况,请考虑以下内容...

之前,我在 macOS 网络偏好设置 > 高级... > 代理 > SOCKS 代理中启用了 SOCKS 代理。它看起来像这样:

在此处输入图片描述

长话短说,该服务器不再运行,因此与环回的代理连接失败。Chrome、Telnet 和 Nmap 工作的原因是因为他们不遵守 macOS SOCKS 代理设置。任何真正遵守这些设置的应用程序(例如ssh)都无法访问互联网,这就是 SSH 连接失败的原因。

我不能 100% 确定为什么 SSH 会显示“连接被拒绝”而不是一些通用的“无法访问”错误,但我知道 SOCKS 代理是原因。如果您遇到同样的情况,请尝试检查您的代理设置!

相关内容