投稿日:
【備忘録】AWSのEC2インスタンスにSSH通信する際のWARNING: UNPROTECTED PRIVATE KEY FILE!の解決方法
YouTubeも見てね♪
Anker PowerCor
旅行には必須の大容量モバイルバッテリー!
【最新機種】GoPro hero11 Black
最新機種でVlogの思い出を撮影しよう!
[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット
防水暴風で耐久性抜群なので旅行で大活躍です!
ペヤング ソースやきそば 120g×18個
とりあえず保存食として買っておけば間違いなし!
モンスターエナジー 355ml×24本 [エナジードリンク]
脳を活性化させるにはこれ!
Bauhutte ( バウヒュッテ ) 昇降式 L字デスク ブラック BHD-670H-BK
メインデスクの横に置くのにぴったりなおしゃれな可動式ラック!
サンディスク microSD 128GB
スマホからSwitchまで使える大容量MicroSDカード!
目次
初心者は必ずハマるであろう壁
EC2インスタンス作成時のキーペア
AWSでEC2インスタンスを新たに作成する際に、使用するキーペアを求められます。
キーペアを指定しなくても作成することは可能ですが、セキュリティ上危ないので必ず既存のキーペアを使うか新たに作成するようにしましょう。
pemキーでのSSH時のエラー
このキーペアファイルですが、ブラウザからダウンロードしてそのまま使用すると以下のようなエラーが表示される事があります。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
ssh -i ~/.ssh/sample.pem ec2-user@xx.xx.xx.xx
The authenticity of host 'xx.xx.xx.xx (xx.xx.xx.xx)' can't be established.
ECDSA key fingerprint is SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'xx.xx.xx.xx' (ECDSA) to the list of known hosts.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/blogenist/.ssh/sample.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 "/Users/blogenist/.ssh/sample.pem": bad permissions
Permission denied (publickey).
|
おそらく、初めてEC2インスタンスにSSH接続しようとすると、ほとんどの方がこのエラーに巡り合っているのではないでしょうか。笑
原因
まずは、エラー内容を解析してみましょう。
1 |
WARNING: UNPROTECTED PRIVATE KEY FILE!
|
これは保護されていない秘密鍵ファイルだよ!という警告文ですね。
具体的な理由は以下です。
1 |
Permissions 0644 for '/Users/blogenist/.ssh/sample.pem' are too open.
|
/Users/blogenist/.ssh/sample.pemのパーミッションが0644なので緩すぎだよ!という意味となります。
0644とはファイルモードのことを指しており、このファイルの所有者以外にも見えてしまう設定となってしまっているのが警告の原因と思われます。
確かに、対象のファイルが644を表すrw-r–r–状態になってしまっていますね。
1
2
3
4
5
|
ls -la ~/.ssh
total xxx
drwxr-xr-x 21 blogenist staff 714 5 22 14:54 .
drwxr-xr-x+ 108 blogenist staff 3672 5 23 14:48 ..
-rw-r--r--@ 1 blogenist staff 1692 5 22 14:53 sample.pem
|
では、原因が分かったところで対応してみましょう。
手順
ファイルモードを600に変更
結論を言うと、ファイルモードを所有者以外は読み取りを出来ないように変更すれば良いです。
以下のコマンドを実行してみましょう。
1 |
chmod 600 ~/.ssh/{対象の秘密鍵キーペア}.pem
|
たったこれだけです。
確認
では確認をしてみましょう。
まずはファイルモードが変わっているか確認します。
1
2
3
4
5
|
ls -la ~/.ssh
total xxx
drwxr-xr-x 21 blogenist staff 714 5 22 14:54 .
drwxr-xr-x+ 108 blogenist staff 3672 5 23 14:48 ..
-rw-------@ 1 blogenist staff 1692 5 22 14:53 sample.pem
|
正常に変わっていますね。
では、実際にSSH接続を試みてみましょう。
1
2
3
4
5
6
7
8
9
10
|
ssh -i ~/.ssh/sample.pem ec2-user@xx.xx.xx.xx
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-ami/2018.03-release-notes/
6 package(s) needed for security, out of 7 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-yy-yy-yy-yy ~]$
|
無事にエラーが出ずにEC2インスタンスへのSSH接続が出来ましたね♪
終わりに
以上のように、頻繁に起こりやすいエラーですが、エラーの原因さえ分かれば簡単に対応する事が可能となっています。
お困りの方は是非この記事を参考にして対応を行ってみてください。