どうも、白夜霧(@KiRi_Byakuya)です。
今回は、GitでPush(またはPull)しようとしたときに「パーミッションエラー」が発生したので、その解決方法の覚書。
エラー内容
エラー内容は以下の通り。
Permissions for 'C:\\users\\username/.ssh/id_rsa' 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\\username/.ssh/id_rsa": bat permissions
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
つまり、どういうエラー?
困った時のGoogle翻訳。訳したところ、重要なのは最初の2行のみ。
Permissions for 'C:\\users\\username/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.>>「C:\ users \ username / .ssh / id_rsa」の権限がオープンしすぎています。
>>秘密鍵ファイルに他人がアクセスできないようにする必要があります。
つまり『そのキー、他のユーザーにもアクセス権限があるじゃん!そんなセキュリティの低い鍵は使わせん!』というお叱りエラー。
対処方法
エラー文でググってみると、同じエラーが発生した人の記事を見つけることができる。つまりパーミッション(権限)を所有者”だけ”に変更すれば良いらしい。ただ、これが通用するのは環境がLinuxかMacOSのみ。Windowsでは同じ方法での解決は無理。
$ chmod 600 ~/.ssh/id_rsa
Windowsでの解決方法
結局の所、どうやったかというと「.ssh」フォルダの「プロパティ」→「セキュリティ」の『グループ名またはユーザー名』の「不明なアカウント」を削除して、メインアカウント(とAdministrators)にのみ、アクセス権限を与えるように変更したらエラーは解消しました。
そもそもの原因は?
そもそも「不明なアカウント」がある原因は、自宅のパソコンで仕事をする機会が多くなったので「個人用と仕事用でアカウント分けよう」と思い立ち、Windowsに新しいアカウントを追加。
その際、個人用アカウントフォルダ内にある秘密鍵を、仕事用アカウントにコピーするために「.ssh」フォルダへのアクセスを許可してしまったのが原因。
しかも、仕事用アカウントは「開発環境の再構築がアホみたいに時間がかって面倒!」という理由により途中で断念。つまり無駄骨。
参考になったらポッチとお願いしますm(_ _)m