ITのえんぴつ

Google Blockly開発者ツールやIT・プログラミングを研究して発信するブログ

SSH接続時に「Connection refused」エラーが発生した場合の対処法

サーバーにSSH接続しようとした際に、以下のようなエラーメッセージが表示され、接続が拒否されることがあります。

ssh: connect to host example.server.com port 22: Connection refused

このエラーが発生する原因はいくつか考えられます。本記事では、一般的な原因とその対処法について解説します。


1. VPN接続を確認する

企業や特定のネットワーク内のサーバーに接続する場合、VPNを利用する必要があることがあります。VPNが切断されていると、サーバーに到達できないため、SSH接続が拒否されることがあります。

対処法:

  • VPNが接続されているか確認する
  • 切断されている場合は、VPNを再接続する
  • それでも解決しない場合は、PCを再起動し、VPN接続を確立した状態で再試行する

2. サーバーが稼働しているか確認する

サーバー自体が停止している場合、SSH接続は当然ながら拒否されます。

対処法:

  • サーバーの管理者に問い合わせて、サーバーが稼働しているか確認する
  • もしサーバーへの別の接続手段(リモートデスクトップ、Web管理画面など)がある場合、それを試してみる

3. SSHサービスが起動しているか確認する

サーバーが起動していても、SSHサービス (sshd) が動作していなければ、接続は拒否されます。

対処法:

  • サーバーに物理的にアクセスできる場合、以下のコマンドを実行し、SSHサービスの状態を確認する
    systemctl status sshd
    
  • SSHサービスが停止している場合は、以下のコマンドで再起動する
    sudo systemctl restart sshd
    

4. ファイアウォールやセキュリティグループを確認する

サーバーのファイアウォールクラウドのセキュリティ設定によって、ポート22(SSH)がブロックされている可能性があります。

対処法:

  • iptables または firewalld の設定を確認する
    sudo iptables -L -n
    sudo firewall-cmd --list-all
    
  • クラウドサーバーの場合、セキュリティグループ(AWSGCP、Azureなど)の設定を確認し、ポート22が開放されているか確認する

5. SSHポートの変更を確認する

サーバー側でSSHのポートがデフォルトの 22 以外に変更されている場合、正しいポートを指定しないと接続できません。

対処法:

  • サーバー管理者に確認し、使用すべきポートを教えてもらう
  • 指定されたポートでSSH接続する(例: ポート 2222 を指定する場合)
    ssh -p 2222 user@example.server.com
    

6. 接続先のホスト名やIPアドレスが正しいか確認する

誤ったホスト名やIPアドレスを指定していると、接続できません。

対処法:

  • ping コマンドでホストにアクセスできるか確認する
    ping example.server.com
    
  • nslookupdig を使用して、ホストのDNS解決が正しく機能しているか確認する
    nslookup example.server.com
    dig example.server.com
    

まとめ

SSH接続が拒否される場合、以下の手順で原因を特定し、対応してください。

  1. VPNが必要か確認し、接続する
  2. サーバー自体が稼働しているか確認する
  3. SSHサービス (sshd) が起動しているか確認する
  4. ファイアウォールやセキュリティ設定を確認する
  5. SSHポートが変更されていないか確認し、必要なら指定する
  6. 接続先のホスト名やIPアドレスを再確認する

問題が解決しない場合は、サーバー管理者に問い合わせることをおすすめします。