今回はpart2ということで、part1で作成したEC2インスタンスへログインを行っていきます。
まだ、part1を読んでいない方は、こちらからご覧ください!
それではさっそくやっていきましょう!
はじめに
今回はWindowsでSSHキーを用いてEC2インスタンスへのログインを行っていきます。
▼環境
- Windows PC
- Windows Powershell
ログイン手順
▼ステップ1
Windows Powershellを管理者権限で開く。開くと下記のようなターミナルが表示されます。
▼ステップ2
以下のコマンドを実行する
1. セキュリティ強化のためのコマンド
秘密鍵ファイルなどの重要なファイルに対して、不要なアクセス権が他から継承されないようにする
icacls "秘密鍵ファイルのパス" /inheritance:r
詳しい意味
-
icacls
:
Windowsでファイルやフォルダーのアクセス権を表示、変更するためのコマンド。 -
"秘密鍵ファイルのパス"
:
part1で作成した秘密鍵ファイルを指定(例: C:\path\to\privatekey.pem) -
/inheritance:r
:
継承されているアクセス権(親フォルダから受け継がれているアクセス権)を削除
2. 現在のユーザーに読み取り権限を付与するためのコマンド
秘密鍵ファイルなどの重要なファイルに、他の不要なアクセス権を削除した上で、自分自身のみが読み取れるようにする
icacls "秘密鍵ファイルのパス" /grant:r "$($env:USERNAME):R"
詳しい意味
-
icacls
:
上記同様 -
"秘密鍵ファイルのパス"
:
上記同様 -
/grant:r
:
指定したユーザーへのアクセス権を「付与」し、他のアクセス権は削除 -
"$($env:USERNAME):R"
:
現在ログインしているユーザー名を取得するPowerShellの変数
3. Windowsで指定されたファイルの所有権を現在のユーザーに変更するコマンド
システム管理者や他のユーザーが所有しているファイルでも、自分の管理下に置くことができるため、ファイルのアクセス権を設定しやすくなる
takeown /f "秘密鍵のファイルパス"
詳しい意味
-
takeown
:
Windowsのコマンドで、ファイルやフォルダーの所有権を取得するコマンド -
/f "秘密鍵のファイルパス"
:
/f は「file(ファイル)」の略で、特定のファイルを対象に指定
4. SSHを使ってAmazon EC2インスタンスにリモート接続するためのコマンド
指定した秘密鍵を使って、EC2インスタンスのLinuxユーザー (ec2-user) としてログインする
ssh -i"秘密鍵のファイルパス" ec2-user@"パブリック IPv4 DNS"
詳しい意味
-
ssh
:
SSHプロトコルを使用してリモートマシンに接続するコマンド -
-i "秘密鍵のファイルパス"
:
SSH接続に使用する秘密鍵ファイルを指定する -
ec2-user@
:
Amazon Linuxや一部のLinuxディストリビューションでEC2インスタンスにログインする際に使用するデフォルトのユーザー名 -
"パブリック IPv4 DNS"
:
接続したいEC2インスタンスのパブリックIPv4 DNSを指定。AWSのEC2コンソールでインスタンスの「詳細情報」から確認できるパブリックDNS
最後のコマンドを実行すると、「Are you sure you want to continue connecting (yes/no/[fingerprint])?」と出てくるので、"yes"と入力する。
下記と同じように表示されたらログイン成功です!!
おわりに
今回は、自分のPCからEC2インスタンスにSSHで接続する方法を見ていきました。次回は、EC2インスタンスにNginxなどのソフトウェアをインストールしていきます。最後までお読みいただき、ありがとうございました!