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ダッシュボードから対象のインスタンスを選択します。
インスタンス詳細画面の「セキュリティ」タブを開き、「インバウンドルール」の一覧を確認してください。
下図のように HTTP と HTTPS のみが表示されており、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ステップで完了します。
- EC2インスタンスの「セキュリティ」タブでインバウンドルールを確認する
- セキュリティグループの「インバウンドルールを編集」からSSH(ポート22)を追加する
- Tera Termで再接続し、SSH認証ダイアログが表示されることを確認する
この手順で解決できた方はぜひコメントで教えてください!それでもタイムアウトが続く場合は、上記のチェックリストを参考にしつつコメント欄でご相談いただければ、わかる範囲でお答えします。
今後もAWS・Python・プログラミング初心者向けの情報をお届けしますので、ぜひメルマガにご登録ください。
それでは、ステキなAWSライフを!
📚 関連記事
- 【Python×Arduino】PySerialでPermissionError「アクセスが拒否されました」を解決する方法— EC2以外の接続トラブル対処法として補完的価値がある
- Raspberry Pi + Cloudflare Tunnelで自宅Webサーバーを安全・格安構築する完全ガイド— SSH接続・セキュリティ設定の応用例として実践的
- 【初心者OK】PythonとTeachable Machineでじゃんけんを認識!AIと対戦するカメラアプリの作り方— EC2インスタンス活用の実践例としての価値
- Arduino入門|電子工作初心者が最初に作るべきLEDプロジェクト5選— セットアップ・トラブル解決の初心者向け体験として補完








