ある日、WindowsのPowerShellからssh接続しようとしたところ
PS C:\Users\climate\.ssh> ssh cloud9
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
Permissions for 'C:\\Users\\climate\\.ssh\\cloud9.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "C:\\Users\\climate\\.ssh\\cloud9.pub": bad permissions
ec2-user@35.74.184.66: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
上記のようなエラーメッセージが表示されました。
本記事では、このようなエラーメッセージの対処法を紹介します。
原因
英文を読むと、どうやら秘密鍵ファイルに他の人がアクセスできないようにする必要があります。とあることから秘密鍵の権限に問題があるようです。
こちらの記事でも書いたように本来、公開鍵は、今のユーザーのみ読み込み権限ができるように変更する必要があります。
しかし、Windowsには、権限を変えるchmodコマンドがないため、どのように変更するのかを次に紹介します。
Windowsでのセキュリティ
エクスプローラーを開き、公開鍵のファイルを右クリックします。
プロパティからセキュリティに移動します。
ここで、編集をクリックし、今のユーザー以外の不必要なユーザーを削除します。(今のユーザーとSYSTEM、Administratorsは残しましょう。)
自分の場合、Everyoneを選択し、削除しました。
変更したのち、再度ssh接続しましょう。
するとうまくいきます。
PS C:\Users\climate\.ssh> ssh cloud9
Last login: Mon Sep 20 22:06:25 2021 from v118-27-13-183.k6mg.static.cnode.io
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
:~ $