投稿日:
【備忘録】AWSのEC2インスタンスにSSH通信する際のWARNING: UNPROTECTED PRIVATE KEY FILE!の解決方法
YouTubeも見てね♪
ねこじゃすり
猫を魅了する魔法の装備品!
Anker PowerCor
旅行には必須の大容量モバイルバッテリー!
【最新機種】GoPro hero11 Black
最新機種でVlogの思い出を撮影しよう!
[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット
防水暴風で耐久性抜群なので旅行で大活躍です!
ペヤング ソースやきそば 120g×18個
とりあえず保存食として買っておけば間違いなし!
レッドブル エナジードリンク 250ml×24本
翼を授けよう!
ドラゴンクエスト メタリックモンスターズギャラリー メタルキング
みんな大好き経験値の塊をデスクに常備しておこう!
目次
初心者は必ずハマるであろう壁
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接続が出来ましたね♪
終わりに
以上のように、頻繁に起こりやすいエラーですが、エラーの原因さえ分かれば簡単に対応する事が可能となっています。
お困りの方は是非この記事を参考にして対応を行ってみてください。





