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 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 ответ
Это оказалось легко исправить. Если есть кто-то еще, проходящий через это, рассмотрите следующее...
Ранее я включил SOCKS-прокси в сетевых настройках macOS> Дополнительно... > Прокси-серверы> SOCKS Proxy. Это выглядело так:
Короче говоря, этот сервер больше не работал, поэтому прокси-соединения с обратной связью были неудачными. Причина, по которой Chrome, Telnet и Nmap работали, заключалась в том, что они не уважали настройку SOCOS-прокси macOS. Любые приложения, которые действительно соблюдают эти настройки (например, ssh
) не смогли получить доступ к Интернету, поэтому SSH-соединения не работали.
Я не уверен на 100%, почему SSH выдал "отказано в соединении" вместо какой-то общей "недоступной" ошибки, но я знаю, что причиной был прокси SOCKS. Если то же самое происходит с вами, попробуйте проверить настройки прокси!