1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS CLIを使用してEC2にSSHやSCPでアクセスする

Last updated at Posted at 2021-02-12

#目的

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

無事にファイル転送できました!

#おわりに

間違っている点やもっと良い方法などありましたら、ご指摘いただけるとありがたいです!
最後までお読みいただきありがとうございました!

#参考にした記事

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?