AWSでコンソールからEC2インスタンスへSSH接続できずに試行錯誤したのでまとめてみました。
EC2インスタンスを立てるところからやり直したい場合は次の記事で紹介していますので、参考にしてください。
AWSでコンソール(teraterm)からEC2インスタンスへSSH接続できなかった時にどこを調べる?
以下の状態を確認してみましょう。
- EC2の状態を調べよう
- インターネットゲートウェイを確認しよう
- ルートテーブルを確認しよう
- セキュリティグループを確認しよう
- 認証鍵が正しいか確認しよう
- ユーザーが正しいかを確認しよう
- それでも接続できない時は・・・
EC2の状態を調べよう
まずはEC2の状態を調べましょう。
もちろん起動していなくては接続できません。
以下の画像のように
- インスタンスの状態が「実行中」となっている
- ステータスチェックにチェックマークがついている
状態であればOKです。
インターネットゲートウェイを確認しよう
EC2が配置されているVPCがインターネットゲートウェイに接続を確認します。
VPCのダッシュボードからインターネットゲートウェイを選択し、
以下の画像のようにEC2インスタンスが配置されているVPC(画像の「VPC ID」列)がインターネットゲートウェイと紐づいていることを確認します。
この時、状態が「Attached」となっていることを確認してください。
ルートテーブルを確認しよう
EC2が配置されているVPCが利用するルートテーブルがあることを確認します。
パブリックサブネットを利用している場合は関連付けがされていることも確認してください。
上の画像の状態で左端のチェックを入れると画面下にウィンドウが出てきます。
ルートタブが以下のようになっていることを確認してください。
1行目はデフォルトの設定ですが、2行目は自分で追加する必要があります。
この場合2行目の意味は「0.0.0.0/0」の範囲のIPアドレス(つまりすべて)はターゲット列のインターネットゲートウェイへルーティングするという意味になります。
ここで指定するゲートウェイは先ほどのゲートウェイを選択していることを確認してください。
※送信先IPアドレスの範囲は要件に合わせて設定してください。特にない場合は上記同様。
セキュリティグループを確認しよう
EC2のダッシュボードからセキュリティグループを選択します。
インバウンドタブを選択し、以下のようにSSH接続の許可設定がされていることを確認してください。(デフォルトの場合はこのまま)
※ソース列の設定が「0.0.0.0/0」でない場合はコンソール接続する端末がそのIPアドレス範囲内であることを確認してください。
以上がAWS側の確認項目となります。
認証鍵が正しいか確認しよう
インスタンスの作成時にダウンロードした認証鍵が正しいかを確認します。
EC2のインスタンス一覧を右にスクロールすると「キー名」という欄があります。
キー名.pemという名前の認証鍵ファイルをSSH接続では利用します。
この場合のキーファイル名は「test-aws.pem」となります。
ユーザーが正しいかを確認しよう
AWSの初期ログインユーザーはOSによって異なります。
こちらのAWSのページにユーザー一覧がありますので確認してください。
それでも接続できない時は・・・
それでも接続できない時はAWSの設定だけでなく接続したいPC側の設定を見直してみてください。
ちなみに投稿主はVPNとプロキシサーバーを利用していたためにいくら設定を見直しても接続できないままでした。
通常のインターネット接続をしたらすんなり接続できました。
以上となります。時間ができたらもう少し詳しく記事を書き直したいと思います。
コメント