雑記

【Git】 SSHの公開鍵認証方式でPushしようとしたら、パーミッションエラーで怒られた時の解決方法【Windows 10】

どうも、キリログ(@KiRi_LOG_BRZ)です。

今回は、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」の権限がオープンしすぎています。
>>秘密鍵ファイルに他人がアクセスできないようにする必要があります。

つまり『そのキー、他のユーザーにもアクセス権限があるじゃん!そんなセキュリティの低い鍵は使わせん!』というお叱りエラー。

対処方法

エラー文でググってみると、同じエラーが発生した人の記事を見つけることができる。つまりパーミッション(権限)を所有者”だけ”に変更すれば良いらしい。

$ chmod 600 ~/.ssh/id_rsa

ただ、これが通用するのは環境がLinuxかMacOSのみ。Windowsでは同じ方法での解決は無理。


結局の所、どうやったかというと「.ssh」フォルダの「プロパティ」→「セキュリティ」の『グループ名またはユーザー名』の「不明なアカウント」を削除して、メインアカウント(とAdministrators)にのみ、アクセス権限を与えるように変更したらエラーは解消しました。

そもそもの原因は?

そもそも「不明なアカウント」がある原因は、自宅のパソコンで仕事をする機会が多くなったので「個人用と仕事用でアカウント分けよう」と思い立ち、Windowsに新しいアカウントを追加。

その際、個人用アカウントフォルダ内にある秘密鍵を、仕事用アカウントにコピーするために「.ssh」フォルダへのアクセスを許可してしまったのが原因。

しかも、仕事用アカウントは「開発環境の再構築がアホみたいに時間がかって面倒!」という理由により途中で断念。つまり無駄骨。

  • この記事を書いた人

KiRi

現役貧乏サラリーマン。仮想通貨をきっかけに投資に興味を持ち、現在では「iDeCo」や「つみたてNISA」など堅実な投資に勤しむ。貪欲に図太くしぶとく生きることが目標。

-雑記
-, , ,

© 2020 KiRi-LOG