以下のようなエラーが発生したときの原因と対処法について簡単にまとめています。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/id_ed25519' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "id_ed25519": bad permissions
Permission denied (publickey).
エラーの原因
このエラーの発生原因は「秘密鍵に適切なアクセス権限が設定されていないこと」です。
「Permissions 0644」と表示された場合は、指定したファイルを誰もが閲覧可能であることを示しています。
秘密鍵は非常に重要なものなので、所有者以外にアクセス権があってはいけません。
リモートーサーバーに秘密鍵を置く場合など、ローカルの秘密鍵をコピーして、touchコマンドを使って作成したファイルに貼り付けた場合に発生します。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '秘密鍵のパス' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "id_ed25519": bad permissions
Permission denied (publickey).
このエラーの内容を翻訳すると以下のようになります。
警告:保護されていない秘密鍵ファイル!
'秘密鍵のパス'のパーミッション0644はオープンすぎます。
秘密鍵ファイルに他の人がアクセスできないようにする必要があります。
この秘密鍵は無視されます。
キー「id_ed25519」をロード:不正な権限
許可が拒否されました(公開鍵)。
Permissions 0644とは何か?
ファイルのパーミッション(権限)が「0644」なのでダメだというメッセージが出ます。
この「0644」とは、数値でアクセス権限を与えているもので、所有者には読み込みと書き込み可能、グループとそれ以外の人は読み込み可能という権限になります。
つまり、誰でもファイルの中身を見れるということです。
対処法
対処法は簡単で、秘密鍵のファイルのアクセス権限を所有者のみ読み込みと書き込み可能にします。
アクセス権限を変更する「chomd」コマンドを使って秘密鍵のファイルにアクセス権「600」を指定します。
$ chmod 600 <秘密鍵のファイルパス>
「600」は所有者は読み書き可能、それ以外の人は権限無し(何も許可しない)という指定です。
以上で設定は完了です。