#目的
AWS CLIとSession Manager pluginをインストールして、プライベートサブネットのEC2にSSHで接続したり、SCPでEC2-ローカル間でファイル転送ができるようにします。
#環境
- Windows 10 Pro 64bit メモリ 32GB
#前提条件
- SSHアクセスが可能なユーザーをEC2に追加済みであること
ユーザーの追加方法は、下記のAWSサポートから参照できます。
#1. AWS CLI をインストールする
下記のAWSドキュメントから、AWS CLIのインストーラーをダウンロードして実行します。
インストールが完了したら、コマンドプロンプトからAWS CLIのバージョンを表示してみます。
[win] $ aws --version
aws-cli/2.1.22 Python/3.7.9 Windows/10 exe/AMD64 prompt/off
上記のようにバージョンが表示されれば、インストール成功です!
#2. Session Manager plugin をインストールする
下記のAWSドキュメントから、Session Manager pluginのインストーラーをダウンロードして実行します。
Session Manager plugin が正常にインストールされたことを確認するには、次のコマンドを実行します。
[win] $ session-manager-plugin
The Session Manager plugin was installed successfully. Use the AWS CLI to start a session.
上記のように表示されれば、インストール成功です!
バージョンも確認してみます。
[win] $ session-manager-plugin --version
1.2.30.0
無事に表示できました!
#3. SSH 設定ファイルを更新する
SSH設定ファイルを更新して、Session Managerを通してのSSH接続を有効にします。
C:\Users\username\.ssh\config に下記の文言を追加します。
# SSH over Session Manager
host i-* mi-*
ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
この作業に関するAWSドキュメントは下記URLより参照できます。
.sshディレクトリやconfigファイルがない場合は作成してください。
[win] $ cd C:\Users\username
[win] $ mkdir .ssh
[win] $ cd .ssh
[win] $ type config > config
#4. aws configure を設定する
aws configureコマンドを実行して、AWS Access Key ID、AWS Secret Access Key、Default region name、Default output formatを入力します。
[win] $ aws configure
AWS Access Key ID [None]: XXXXXXXXXX
AWS Secret Access Key [None]: XXXXXXXXXX
Default region name [None]: ap-northeast-1
Default output format [None]: json
AWS Access Key ID: IAMユーザーのアクセスキーIDを入力します。
AWS Secret Access Key: IAMユーザーシークレットアクセスキーを入力します。
Default region name: デフォルトでリクエストを送信するサーバーのAWSリージョンを特定します。
Default output format: 結果の出力形式を指定します。
アクセスキーIDとシークレットアクセスキーがない場合は、下記のAWSドキュメントを参考に作成してください。
これで、SSHやSCPを実行する準備が整いました!
この作業に関するAWSドキュメントは下記URLより参照できます。
#5. EC2インスタンスにSSHでログインする
以下のコマンドで、EC2にSSHでログインしてみます。
[win] $ ssh -i ~\path\key.pem username@i-xxxxxxxxxx
Enter passphrase for key '~\path\key.pem':
Last login: Tue Feb 9 14:59:54 2021 from localhost
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
無事にログインできました!
#6. SCPでファイル転送する
以下のコマンドで、EC2のユーザーディレクトリをデスクトップに転送します。
scp -i ~\path\key.pem -r username@i-xxxxxxxxxx:/home/username C:\Users\username\Desktop
Enter passphrase for key '~\path\key.pem':
hoge.txt 100% 18 0.7KB/s 00:00
無事にファイル転送できました!
#おわりに
間違っている点やもっと良い方法などありましたら、ご指摘いただけるとありがたいです!
最後までお読みいただきありがとうございました!
#参考にした記事