はじめに
最近はAWSのクラウドプラクティショナー試験の勉強をしていますが、いろいろと学ぶことが多いです。sshやscpコマンドでEC2インスタンスにアクセスする時、少しハマりましたので記録を残しておきます。
sshの接続方法
sshでAWSのEC2インスタンスに接続しようとするとアクセス権に関するエラーで接続できず。
c:\temp>ssh -i SecretKey.pem ec2-user@パブリックIP
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'SecretKey.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "SecretKey.pem": bad permissions
ec2-user@パブリックIP: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
c:\temp>
ググって調べてみると秘密鍵「SecretKey.pem」はホームディレクトリに保存する必要がある模様。コマンドプロンプトを起動し、SecretKey.pemをホームディレクトリにコピーします。
copy C:\temp\SecretKey.pem C:\Users\user1
再度、確認します。
ssh -i "C:\Users\user1\SecretKey.pem" ec2-user@パブリックIP
Last login: Mon Sep 28 11:46:37 2020 from xxx
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
Amazon Linux 2
[ec2-user@ip-172-31-33-95 ~]$
今度は成功しました。しかし、なぜホームディレクトリじゃないと駄目なのか気になってフォルダやファイルのアクセス権を細かく調べました。ホームディレクトリとまったく同じアクセス権をC:\tempフォルダやSecretKey.pemファイルに設定しましたが現象変わらず・・・。ホームディレクトリには何か特別な設定があるのかもしれません。
scpの使用方法
ファイルのダウンロード
Webサーバにある「index.html」ファイルをダウンロードします。
c:\temp> scp -i "C:\Users\user1\SecretKey.pem" ec2-user@パブリックIP:/var/www/html/index.html "c:\temp"
index.html 100% 49 2.3KB/s 00:00
ファイルのアップロード
ローカルPCにある「index.html」ファイルをアップロードします。
c:\temp> scp -i "C:\Users\user1\SecretKey.pem" "c:\temp\index.html" ec2-user@パブリックIP:
index.html 100% 49 1.9KB/s 00:00
「index.html」ファイルはホームディレクトリ(/home/ec2-user)にアップロードされます。
コメント