SSH 接続がタイムアウトする場合の原因と解決方法

  • URLをコピーしました!

SSH でサーバに接続しようとしたときに タイムアウト することがあります。
これは「サーバが応答していない」ことを意味し、クライアントからのリクエストが届いていないか、届いても応答が返ってこない状況です。

目次

主な原因と解決方法

1. サーバ側のポート制限

原因

  • ファイアウォール (firewalld / iptables) が 22 番ポートをブロックしている
  • クラウド環境 (AWS, GCP, Azure など) のセキュリティグループで 22 番ポートが閉じている

解決方法

  1. サーバに別経路でログイン(クラウドならコンソール、オンプレなら直接ログイン)
  2. SSH が有効になっているか確認 systemctl status sshd systemctl enable sshd --now → inactive なら起動する
  3. firewalld の場合 firewall-cmd --add-service=ssh --permanent firewall-cmd --reload → SSH (22 番ポート) を許可
  4. iptables の場合 iptables -A INPUT -p tcp --dport 22 -j ACCEPT service iptables save systemctl restart iptables
  5. クラウド環境の場合
    • AWS: EC2 セキュリティグループで「TCP 22」を 0.0.0.0/0 または接続元 IP に対して許可
    • GCP: VPC ファイアウォールルールで 22 番ポートを解放
    • Azure: NSG (ネットワークセキュリティグループ) で 22 番ポートを開放

2. VPN / Proxy 経由の問題

原因

  • 会社や学校のネットワーク経由だと、SSH (22 番ポート) がブロックされていることがある
  • Proxy サーバを経由すると接続できない場合がある

解決方法

  1. 自宅やスマホのテザリングなど、別ネットワークから接続できるか確認
    • 接続できるなら、VPN や社内ネットワークの制限が原因
  2. 管理者に問い合わせて、SSH のポートを開放してもらう
  3. どうしても制限を回避できない場合は、サーバ側で ポートを変更 する # /etc/ssh/sshd_config を編集 Port 2222 systemctl restart sshd → 以後は ssh -p 2222 user@host で接続

3. ネットワーク到達性の問題

原因

  • サーバ自体が停止している
  • ネットワーク経路上でルーティングが失敗している

解決方法

  1. サーバが稼働しているか確認(クラウドの管理画面 / 物理サーバの状態確認)
  2. ネットワーク疎通確認 ping サーバIP nc -vz サーバIP 22
    • ping で応答なし → サーバがダウン or ICMP 無効化
    • nc で接続不可 → ネットワークかファイアウォールが原因
  3. ルーティングの確認 traceroute サーバIP → 途中で止まっていれば、経路上の問題

まとめ

SSH のタイムアウトは、

  • サーバ側のポート制限(firewalld / セキュリティグループ)
  • VPN / Proxy 経由での制限
  • サーバ停止やネットワーク不達

といった原因がほとんどです。

解決の流れとしては、

  1. サーバが稼働しているか確認
  2. ping / nc で疎通確認
  3. サーバ側の firewall / セキュリティ設定を修正
  4. VPN / Proxy 経由の制限を調べる

という順番で調査すればスムーズです。

よくあるエラーと解決方法まとめ
目次