web-dev-qa-db-ja.com

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
2
Joseph A.

それは簡単な修正であることがわかりました。これを経験している人が他にいる場合は、以下を検討してください...

以前は、macOSの[ネットワーク設定]> [詳細...]> [プロキシ]> [SOCKSプロキシ]でSOCKSプロキシを有効にしていました。それはこのように見えました:

enter image description here

要するに、このサーバーはもう実行されていなかったため、ループバックへのプロキシ接続は失敗しました。 Chrome、Telnet、およびNmapが機能した理由は、macOS SOCKSプロキシ設定を尊重しなかったためです。すべてのアプリケーションこれらは実際にこれらの設定(sshなど)を尊重し、インターネットにアクセスできなかったため、SSH接続が失敗していました。

SSHが一般的な「到達不能」エラーの代わりに「接続拒否」を引き起こした理由は100%わかりませんが、SOCKSプロキシが原因であることがわかっています。同じことが起こった場合は、プロキシ設定を確認してください!

2
Joseph A.