AWSをはじめたての頃、
多くの方がつまづくのが、EC2インスタンスへのログインだと思います。
せっかくEC2を使ってLinuxサーバーをたてたのに、
ログインできないんじゃ、Apacheだって起動できないし、アプリのデプロイだってできません。
今回は、EC2で作成したLinuxサーバーへSSH接続(ログイン)する方法をご説明します。
※WindowsServerへの接続は「Amazon EC2を立ち上げから接続するまで徹底解説(WindowsServer編)」をご参照ください。
SSH接続するための準備
SSH接続するためには、以下の接続先サーバーの情報と、SSHクライアントが必要となります。
SSHクライアントはログイン端末のOSによって異なります。
ご自身の端末のOSにそって準備しましょう。
◆接続先サーバーの情報
- パブリックIP(またはパブリックDNS名)
- 初期ユーザー名
- キーペア(○○.pem)
◆SSHクライアント
- WindowsPCから接続する場合:「Tera Term」または「PuTTY」
- MacPCからログインする場合:「ターミナル」
接続先のサーバー情報はどのように確認したらいいの?
一つずつご説明しますね。
パブリックIP/パブリックDNS名
パブリックIP(またはパブリックDNS名)は、
AWSコンソールにログインして、EC2インスタンスの説明欄を確認すればわかります。
初期ユーザー名
Amazon Linux、またはAmazon Linux 2のOSの場合は「ec2-user」が初期ユーザー名となります。
そのほかのユーザー名はAMIのドキュメントに記載されていると思いますので、そちらをご確認してください。
キーペア(秘密鍵ファイル)
キーペアとは、EC2インスタンスを作成した際に、以下の画面にてダウンロードした”○○.pem”という秘密鍵ファイルです。
秘密鍵ファイルを紛失した場合、2度とダウンロードはできません。
残念ですがEC2を新しく作り直すしかありません。
※↑このような状況にならないよう、秘密鍵ファイルの取り扱いは十分すぎるほど注意しましょう!
Tera Termはどうやって準備したらいいの?
Tera Termはフリーソフトです。
こちらからダウンロードが可能です。
赤枠のリンクをクリックすると自動的にダウンロードが開始されます。
※2019.1.1時点、ver4.101が最新版となっていますが、その時点その時点の最新版をダウンロードするのがいいでしょう。
インストールファイルをダウンロードしたら、インストールを行って準備完了です。
WindowsPCからTera Termを使ってEC2へ接続する方法
(1)Tera Termを立ち上げます
(2)ホスト、TCPポート、サービスを次のように設定して[OK]をクリックします
ホスト:接続先のパブリックIP(またはパブリックDNS名)
TCPポート:22
サービス:SSH(SSHバージョン:SSH2)
(3)初めてサーバーへ接続する際、以下のような”セキュリティ警告”ウィンドウが表示されます。
特に何もせずに[続行]をクリックします
(4)ユーザー名の入力、”RSA/DSA/ECDSA/ED25519鍵を使う”を選択し、[秘密鍵]をクリックしてキーペアを指定します。
※キーペアを指定する際、下記図のようにファイルの種類を”秘密鍵ファイル”から”すべてのファイル(*.*)”へ変更しないとキーペアが表示されませんのでご注意ください。
ユーザー名:接続先サーバー情報の初期ユーザー名
パスフレーズ:空欄
入力、指定が完了したら[OK]をクリックします。
(5)EC2サーバへのSSH接続に成功すると、以下のような画面になります。
MacPCからターミナルを使って接続する方法
MacPCからターミナルを使ってEC2サーバーへ接続する方法をご紹介します。
(1)ターミナルを開きます
(2)次のコマンドでキーペアの権限変更を行います。
※<キーペア>.pemを正しいキーペアファイル名に直してください。
1 |
chmod 400 <キーペア>.pem |
(3)次のコマンドでEC2サーバーへログインします。
※<キーペア>.pem、<初期ユーザー名>、<パブリックIP or パブリックDNS名>を正しい値に直してください。
1 |
ssh -i <キーペア>.pem <初期ユーザ名>@<パブリックIP or パブリックDNS名> |
(4)作成したEC2サーバーへはじめてSSH接続する場合、以下のようなテキストが表示されますので”yes”と入力して進みます。
(5)EC2サーバへのSSH接続に成功すると、以下のような画面になります。
接続できない場合は?
以下の3点を確認してみてください。
- EC2のセキュリティグループは端末からのSSH接続が許可されているかどうか
- 接続先サーバーの情報は合っているかどうか
- 社内ネットワークの場合、そもそもSSH接続が端末に許可されているかどうか
1については、AWSコンソールへログインして、セキュリティグループのインバウンドを見ると確認できます。
SSHについて、上記のようにソース欄が”0.0.0.0/0″、または自身の端末のグローバルIPが含まれているCIDR値となっていることを確認してください。
この設定がインバウンドにない場合は、SSH接続できませんのでインバウンドへ追加設定しましょう。
EC2のSSH接続は、AWS初心者にとって結構ハマるポイントでもあります。
私も当初、結構ハマりました・・・苦笑
本記事を参考にSSH接続を試してみてください。
以上、hidesanでした!