SSH は、Linux サーバーにリモートで接続するための最も安全な手段です。 そして、SSH を使用しているときに遭遇する一般的なエラーの 1 つが、”ssh: connect to host port 22: No route to host” です。 この短い記事では、このエラーのトラブルシューティングと修正の方法を紹介します。
ここに、私たちが話しているエラーのスクリーンショットがあります。 リモートホスト上の設定によっては、ポートが必ずしもポート22でない場合があることに注意してください。 セキュリティ対策として、システム管理者は SSH が別のポートでアクセスされるように設定できます。
このエラーが表示される理由はさまざまです。
# ping 192.168.56.100
ping コマンドの結果から、サーバーは稼働中で、そのため ping を受け入れていることがわかります。 この場合、エラーの原因は他にあります。
リモート サーバーでファイアウォール サービスを実行している場合、ファイアウォールによってポート 22 経由のアクセスがブロックされている可能性があります。 ログインして、コマンドプロンプトにアクセスします。
次に、Firewall-cmd (RHEL/CentOS/Fedora) または UFW (Debian/Ubuntu) を使用して、次のようにファイアウォールでポート22 (またはSSHに使用するように設定したポート) を開きます。
# firewall-cmd --permanent --add-port=22/tcp# firewall-cmd --reloadOR$ sudo ufw allow 22/tcp$ sudo ufw reload
ここでもう一度SSHでリモートサーバーに再接続してみます。
$ ssh [email protected]
とりあえずはこれで終了です! 以下の SSH ガイドも参考になるでしょう:
- How to Change SSH Port in Linux
- How to Create SSH Tunneling or Port Forwarding in Linux
- How to Disable SSH Root Login in Linux
- 4 Ways to Speed Up SSH Connections in Linux
- How to Find All Failed SSH login Attempts in Linux