エラー解決

【解決済み】EC2にTera TermでSSH接続がタイムアウトになる原因と直し方

AWS EC2 Amazon Linux 2023にTera TermでSSH接続すると接続タイムアウトになる場合の解決策

AWS EC2インスタンスにTera TermでSSH接続しようとしたとき、突然「接続がタイムアウトしました」というエラーが出て接続できなくなった経験はありませんか?

この記事では、EC2へのSSH接続がタイムアウトになる代表的な原因と、セキュリティグループのインバウンドルールを修正する具体的な手順をスクリーンショット付きで解説します。

技術的な詳細説明は省き、「とにかく今すぐ直したい」という方向けに結論から紹介しています。

この記事でわかること

  • EC2へのSSH接続がタイムアウトになる主な原因
  • セキュリティグループにSSHインバウンドルールを追加する手順
  • 設定後の動作確認方法

前提条件

この記事は以下の環境・状況を前提としています。

  • OS:Amazon Linux 2023
  • SSHクライアント:Tera Term バージョン5以上(v4以下はAmazon Linux 2023の新しい鍵形式に非対応のため接続不可)
  • 以前は正常にSSH接続できていたが、ある日から突然タイムアウトになった
  • キーペア(.pemファイル)は正しく保持している
  • VPC・サブネット・ルートテーブルなど基本的なネットワーク設定は完了している

上記に当てはまらない場合は、別の原因(Elastic IPの剥がれ、インスタンスの停止など)も疑う必要があります。

SSH接続タイムアウトの原因

EC2へのSSH接続がタイムアウトになる原因として最も多いのが、セキュリティグループのインバウンドルールにSSH(ポート22)が設定されていないことです。

EC2インスタンスを作成する際、ネットワーク設定で「HTTPトラフィックを許可」と「HTTPSトラフィックを許可」にだけチェックを入れると、インバウンドルールには HTTP(80番ポート)HTTPS(443番ポート) のみが登録されます。

このとき、SSH(22番ポート)は自動で追加されないため、Tera Termからの接続要求がブロックされてタイムアウトになります。

よくある誤解:「以前はできていたのになぜ?」

インスタンスの再作成・セキュリティグループの変更・AMIからの復元などを行った際に、SSH用のインバウンドルールが引き継がれないケースがあります。「設定した覚えがない」という場合も、過去の作業で意図せず削除されていることがあるので、まずインバウンドルールを確認しましょう。

解決策:セキュリティグループにSSHを追加する手順

それでは、実際にAWSマネジメントコンソールからSSHのインバウンドルールを追加する手順を紹介します。

STEP 1:インスタンスのセキュリティ設定を確認する

まず、AWSマネジメントコンソールにログインし、EC2ダッシュボードから対象のインスタンスを選択します。

インスタンス詳細画面の「セキュリティ」タブを開き、「インバウンドルール」の一覧を確認してください。

下図のように HTTPHTTPS のみが表示されており、SSH が存在しない場合がこの問題の原因です。

STEP 2:セキュリティグループのインバウンドルールを編集する

左側のナビゲーションメニューから「ネットワーク&セキュリティ > セキュリティグループ」を開きます。

対象インスタンスに紐づいているセキュリティグループを選択し、「インバウンドルール」タブ →「インバウンドルールを編集」ボタンをクリックします。

STEP 3:SSHルールを追加する

ルールを追加」ボタンをクリックし、以下のように設定します。

項目設定値
タイプSSH
プロトコルTCP(自動入力)
ポート範囲22(自動入力)
ソース任意の場所 – IPv4(0.0.0.0/0)

ソースの入力欄(虫眼鏡アイコン)をクリックすると候補が表示されます。「0.0.0.0/0」を選択してください。

⚠️ セキュリティに関する注意:ソースを 0.0.0.0/0(全IPアドレス)にすると、インターネット上のすべての端末からSSH接続を試みられる可能性があります。本番環境では、自社のIPアドレス帯域のみに制限することを強く推奨します。

設定が完了したら「ルールを保存」をクリックします。

STEP 4:Tera TermからSSH接続を確認する

ルールを保存後、Tera Termを起動して以下の情報で接続を試みます。

  • ホスト:EC2インスタンスのパブリックIPアドレス(またはElastic IP)
  • ポート:22
  • サービス:SSH

接続後、「SSH認証」ダイアログが表示されれば設定は成功です。ユーザー名(Amazon Linux 2023の場合は ec2-user)と秘密鍵ファイル(.pem)を指定してログインしましょう。

# Tera Termの認証情報(参考)
ユーザー名: ec2-user
認証方式: RSA/DSA/ECDSA/ED25519鍵を使う
秘密鍵ファイル: your-key.pem

それでも解決しない場合のチェックリスト

上記の手順でSSHのインバウンドルールを追加してもタイムアウトが続く場合は、以下の項目も確認してみてください。

  • Tera TermのバージョンがV5以上か:Amazon Linux 2023はED25519鍵を使用するため、V4以下では接続不可
  • インスタンスが「実行中」の状態か:停止・終了状態ではパブリックIPが割り当てられない
  • Elastic IPを使用しているか:インスタンスを停止・再起動するとパブリックIPが変わるため、固定IPが必要
  • サブネットのルートテーブルにインターネットゲートウェイが設定されているか:パブリックサブネットの設定を確認
  • ネットワークACL(NACL)でSSHがブロックされていないか:セキュリティグループの上位レイヤーでブロックされている可能性
  • 正しい秘密鍵ファイル(.pem)を使用しているか:インスタンス作成時に指定したキーペアと一致しているか確認

まとめ

AWS EC2にTera TermでSSH接続すると「接続がタイムアウトしました」となる場合、最も多い原因はセキュリティグループのインバウンドルールにSSH(ポート22)が設定されていないことです。

対処法は以下の3ステップで完了します。

  1. EC2インスタンスの「セキュリティ」タブでインバウンドルールを確認する
  2. セキュリティグループの「インバウンドルールを編集」からSSH(ポート22)を追加する
  3. Tera Termで再接続し、SSH認証ダイアログが表示されることを確認する

この手順で解決できた方はぜひコメントで教えてください!それでもタイムアウトが続く場合は、上記のチェックリストを参考にしつつコメント欄でご相談いただければ、わかる範囲でお答えします。

今後もAWS・Python・プログラミング初心者向けの情報をお届けしますので、ぜひメルマガにご登録ください。

📩 メルマガ登録はこちら

それでは、ステキなAWSライフを!

📚 関連記事

📚 関連商品・おすすめ書籍

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

もしも

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

初心者に定番のPython入門書

Amazonで見る
Arduinoをはじめよう 第4版 (Make: PROJECTS)

もしも

Arduinoをはじめよう 第4版 (Make: PROJECTS)

Arduino公式推薦の定番入門書

Amazonで見る
徹底攻略! 電子工作&プログラミング Arduinoで学ぶ電子工作完全ガイド

もしも

徹底攻略! 電子工作&プログラミング Arduinoで学ぶ電子工作完全ガイド

電子工作とプログラミングを同時に学べる

Amazonで見る

※本記事にはアフィリエイトリンクが含まれます。

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 Pythonを用いたアプリ開発、ウェブアプリケーションの開発で業務の効率化をサポートしています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です