私の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
それは簡単な修正であることがわかりました。これを経験している人が他にいる場合は、以下を検討してください...
以前は、macOSの[ネットワーク設定]> [詳細...]> [プロキシ]> [SOCKSプロキシ]でSOCKSプロキシを有効にしていました。それはこのように見えました:
要するに、このサーバーはもう実行されていなかったため、ループバックへのプロキシ接続は失敗しました。 Chrome、Telnet、およびNmapが機能した理由は、macOS SOCKSプロキシ設定を尊重しなかったためです。すべてのアプリケーションこれらは実際にこれらの設定(ssh
など)を尊重し、インターネットにアクセスできなかったため、SSH接続が失敗していました。
SSHが一般的な「到達不能」エラーの代わりに「接続拒否」を引き起こした理由は100%わかりませんが、SOCKSプロキシが原因であることがわかっています。同じことが起こった場合は、プロキシ設定を確認してください!