AWS EC2 に SSH 接続できない・繋がらないときの確認項目

クラウドサービス AWS

AWS の仮想サーバー EC2 に接続できないときの確認項目を解説します。
EC2 インスタンス、ネットワーク、SSH コマンド の3つの観点に分けてチェックしましょう。



EC2 インスタンスが正常に起動していない

EC2 インスタンスが異常となっている場合は接続できません。
AWS コンソールにログインし、該当サーバーの状態を確認します。

AWS EC2 に SSH 接続できないときの確認項目

 

  • 状態が running となっていること
  • ステータスチェックが 2/2 となっていること
ステータスチェックが 0/21/2 の場合は何らかの異常があります。
再起動しても解消しない場合は AWS サポートへ問い合わせましょう。

 
状態が stopped の場合はサーバーが起動していません。
インスタンスを右クリック → 開始 からサーバーを起動しましょう。

AWS EC2 に SSH 接続できないときの確認項目

EC2 のセキュリティグループを確認する

EC2 には、セキュリティグループ と呼ばれる考え方があります。
ファイアウォールのような「接続許可設定」をイメージすれば OK です。

サーバーに SSH 接続するためには、セキュリティグループによる許可が必要です。
インスタンスを右クリック → ネットワーキングセキュリティグループの変更 から設定します。

AWS EC2 に SSH 接続できないときの確認項目

 
SSH 接続用のセキュリティグループが入っているかを確認しましょう。
セキュリティグループが存在しない場合は新規作成が必要です。

接続元の IP アドレスが許可されているか

セキュリティグループによって、接続できる IP アドレスが制限されています。
今使っている IP アドレスが許可されていなければ、EC2 に繋がりません。

EC2 への接続が許可されている IP アドレスを確認するためには、
インスタンスを選択した状態で、画面下の「インバウンドルールの表示」をクリックします。

EC2に接続できない場合の対処、セキュリティグループのIPを確認する

 
SSH のポート番号(標準は 22)のソース欄に、自分の IP アドレスがあるか確認しましょう。
今使っている IP アドレスは、確認くん などで調べられます。

SSH 接続できる IP アドレスを追加する

セキュリティグループで、自分の IP アドレスが許可されていない場合の対処法です。
初めに、対象の EC2 インスタンスに設定されているセキュリティグループ名をコピーします。

上記の画像例では、launch-wizard-13 がセキュリティグループ名です。
管理画面 を開いて、コピーしたセキュリティグループ名を検索しましょう

EC2 のセキュリティグループを設定する

 
インバウンド タブの「編集」ボタンから変更が可能です。
SSH のポート番号(標準は 22)で、自分の IP アドレスからの接続を許可しましょう。

EC2 へのアクセスを許可する設定

 
今 AWS の管理画面を開いているインターネット回線から繋ぎたい場合は、
「マイIP」を選ぶと、自動的に現在の IP アドレスが入力されますのでご活用ください。

VPC のサブネット・インターネットゲートウェイを確認する

AWS のネットワークには、外部通信が行えないタイプも存在します。
EC2 インスタンスが、外部通信可能なネットワークに所属しているかを確認しましょう。

  • EC2 管理画面を開いてインスタンスを選択する
  • 画面下に表示される サブネット ID を控えておく

 
AWS EC2 に SSH 接続できないときの確認項目

 

  • VPC 管理画面を開いて左メニューから サブネット を選択する
  • 先ほど控えた サブネット ID を検索する
  • ルートテーブル タブを開く

 
AWS EC2 に SSH 接続できないときの確認項目

 
この中に 0.0.0.0/0 : igw-xxxxxx のような設定があれば OK です。
設定がない場合は、外部と通信できないネットワークになっています。

EC2 のパブリック IP アドレスを確認する

上記の項目を確認し、外部通信可能なネットワークであった場合は、
EC2 インスタンスの IP アドレスを確認しましょう。

EC2 管理画面にて「IPv4パブリック IP」の記載があれば OK です。

AWS EC2 に SSH 接続できないときの確認項目
パブリック IP アドレスを付与しないシステム構成の場合もあります。
その場合は、パブリック IP アドレスを持つ別サーバー(※)上から SSH 接続します。

※踏み台サーバーなどと呼ばれます

SSH 接続用のキーペアを見直す

EC2 インスタンス作成時には、キーペア を指定しています。
作成時に指定したキーペアでないと接続できません。

EC2 管理画面を開き、指定されているキーペアを再確認しましょう。

AWS EC2 に SSH 接続できないときの確認項目

 
 
同じ名前のキーペアファイル (xxxx.pem) が手元に必要となります。

Linux から SSH コマンドで接続する場合は、キーペアファイルの権限も要チェックです。
ファイルのパーミッションが 600 (読み取り専用) となっている必要があります。

SSH の接続コマンドを見直す

SSH で接続する際のコマンドが誤っている可能性もあります。
以下の形式となっているか確認しましょう。

$ ssh <ユーザ名>@<サーバーのパブリック IP> -i <キーペアファイル>
  • 接続するユーザ名が正しいこと
  • EC2 インスタンスの IP アドレスが正しいこと
  • キーペアファイルの場所が正しく指定されていること
  • ポート番号を変更している場合は -p オプションで指定します

 
作成した OS によって、ユーザ名の初期値が異なります。

EC2 の OS 初期ユーザ名
Amazon Linux ec2-user
Ubuntu ubuntu
CentOS centos

EC2 インスタンスの接続トラブルまとめ

EC2 インスタンスに繋がらない・接続できない場合の対処を解説しました。
インスタンス、ネットワーク設定、SSH コマンド の3つに分けて調査することが重要です。

  • EC2 インスタンスが正常に動作していること
  • 外部から接続可能なネットワークになっているか
  • SSH コマンドや使用するキーペアファイルが正しいか

 
【関連記事】
AWS EC2 インスタンスの特徴と選び方
EC2 インスタンス料金を節約するテクニック
Elastic IPアドレス (EIP) とは何か?
Fargate, ECS, EKS の違いを解説