##0.はじめに##
みなさん、こんにちは。いかがお過ごしでしょうか?zd6ir7です。今回はAWS EC2のUbuntu環境にSSH接続ができなくて、恥ずかしながらすごくハマってしまった話をしたいと思います。
##1.前提##
接続に関連する前提情報は以下のとおり。
- 接続先のAWS EC2環境は、Ubuntu Server 18.04。
- 接続元環境は、Windows7
- Teratermを使ってsshで接続
- ssh接続の際、EC2インスタンスを作成した際に作成した秘密鍵を使う。
本稿では、IPアドレスやインスタンス名等の環境を特定できるような情報は隠すか、仮の名前で記載しています。
##2.接続手順##
AWSコンソール画面にてEC2を作成後、以下の手順にて接続を試みる。
####2. ダイアログボックスにIPアドレス等を入力して左下の「OK」ボタン押下。####
####3. known_hostsに登録。ダイアログボックスの「続行」ボタンを押下。####
####5. 秘密鍵にパスが設定されているのを確認し「OK」ボタン押下。####
####6. 接続したか?と思ったら本体画面も消えてしまった・・・####
何回接続を試みても同じ結果。う~ん。
##3.原因解析##
なんでだろう?ということで原因を解析してみた。
####1.そもそもネットワークにつながっていない?####
⇒設定を見る限り問題なさそうだ。pingを打ちたいけど後で見るようにICMPは通していない。
####2. TeraTermで指定したIPアドレスが間違っている?####
⇒AWSコンソール画面から再確認。う~ん。合っている。
####3. EC2へのsshが許可されていない?####
⇒AWSコンソール画面からセキュリティグループのインバンド設定を再確認。う~ん。ちゃんと許可されている。
####4. 違った秘密鍵を指定している?####
⇒AWSコンソール画面から再確認。同じキー名の秘密鍵をTeraTermで指定している。う~ん。こちらも合っている。
何が原因なのか全くわからない・・・ あれこれ悩んで数時間が過ぎ・・・
ふとここで思ったのが、
- ネットワークにそもそもつながっていなければ、AWSコンソールにログインしてEC2を作成できない。
- known_hosts登録までうまくいったということは、ssh接続には問題がない、ということだ。
- 秘密鍵が間違っている場合でもその旨のエラーが出るはずで、出ていないということは秘密鍵関係ではないはず。
ということは・・・接続の際、ユーザ名に「ec2-user」と指定していたがそれが違うのではないのか?Unix系ということで何の疑いもなく指定してたが、本当にそれで間違いなかったのか・・・?
##4.原因判明⇒解決##
Googleで検索していろいろ調べてみたら以下のサイトを発見。
SSH を使用した Linux インスタンスへの接続
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html
えっ!?ユーザ名は「ubuntu」を指定すればよい、ということ?
というわけでやってみた。手順は「2.接続手順」の1.~4.と同じ。5.から違っていて、以下のとおりユーザ名に「ubuntu」を指定して「OK」ボタン押下。
そうすると・・・ついに接続できた!!!!! いや~長かった。
というわけで、めでたしめでたし~。