最近、github にクローンまたはプッシュできなくなり、根本的な原因を見つけようとしています。
これはWindows上で
私は cygwin + git と msysgit を持っています。
Msysgit は次のオプションでインストールされました:
- オープンSSH
- Windows コマンドプロンプトから Git を使用する
これにより、git の使用を試すための環境が 4 つ得られます。
- Windows コマンドプロンプト
- パワーシェル
- Gitバッシュ
- シグウィン
どういうわけか、msysgit、cmd.exe、または Powershell を使用してリポジトリをクローンしようとすると、次のエラーが発生するようになりました。
> Initialized empty Git repository in
> C:/sandbox/SomeProject/.git/
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> @ WARNING: UNPROTECTED PRIVATE KEY FILE! @
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> Permissions 0644 for
> '/c/Users/Ben/.ssh/id_rsa' are too
> open. It is recommended that your
> private key files are NOT accessible
> by others. This private key will be
> ignored. bad permissions: ignore key:
> /c/Users/Ben/.ssh/id_rsa Permission
> denied (publickey). fatal: The remote
> end hung up unexpectedly
これは、c:\users\ben\ フォルダ内の .ssh フォルダを使用しています。これは、msysgit によって使用されているものです。.sshフォルダが別の場所にあるため、cygwin が機能すると思われますが、その理由はよくわかりません。
Git Bash で権限を確認します。
$ ls -l -a ~/.ssh
つまり、次のようになります。
drwxr-xr-x 2 Ben Administ 0 Oct 12 13:09 .
drwxr-xr-x 34 Ben Administ 8192 Oct 12 13:15 ..
-rw-r--r-- 1 Ben Administ 1743 Oct 12 12:36 id_rsa
-rw-r--r-- 1 Ben Administ 399 Oct 12 12:36 id_rsa.pub
-rw-r--r-- 1 Ben Administ 407 Oct 12 13:09 known_hosts
どうやらこれらの権限は緩すぎるようです。どうしてこうなったのか、私には全く分かりません。
変更してみることはできますが...
$ chmod -v -R 600 ~/.ssh
それは私にこう伝えます:
mode of `.ssh' changed to 0600 (rw-------)
mode of `.ssh/id_rsa' changed to 0600 (rw-------)
mode of `.ssh/id_rsa.pub' changed to 0600 (rw-------)
mode of `.ssh/known_hosts' changed to 0600 (rw-------)
しかし、効果がないようです。同じエラーがまだ発生し、
$ ls -l -a ~/.ssh
以前と同じ権限が得られます。
アップデート:
Cygwin でこれらのファイルの権限を修正しようとしましたが、Cygwin では権限が正しく報告されますが、Gitbash では正しく報告されません。代替テキスト http://cdn.cloudfiles.mosso.com/c54102/app7962031255448924.jpg
これらの権限を実際に修正する方法について何かアイデアはありますか?
ベストアンサー1
ディレクトリ全体の権限を変更しましたが、Splash はよくないアイデアだと思います。ディレクトリの元の権限を覚えているなら、それを元に戻して次の操作を実行してください。
cd ~/.ssh
chmod 700 id_rsa
.ssh フォルダ内。これにより、id_rsa ファイルは所有者 (あなた) のみに対して rwx (読み取り、書き込み、実行) に設定され、他のすべてのユーザーに対してはアクセスがゼロになります。
元の設定を思い出せない場合は、新しいユーザーを追加し、そのユーザーの SSH キーのセットを作成し、デフォルトの権限を持つ新しい .ssh フォルダーを作成します。その新しい .ssh フォルダーを、.ssh フォルダーとファイルをリセットするための権限の参照として使用できます。
それでもうまくいかない場合は、msysgit をアンインストールし、コンピューター上のすべての .ssh フォルダーを削除して (安全のため)、希望の設定で msysgit を再インストールし、最初からやり直してみてください (すでに試したと言っていたと思いますが)。
編集済み: また、Google 経由でこのリンクも見つけました - Linux で「警告: 保護されていない秘密鍵ファイル!」を修正するこれは Linux を対象としていますが、Linux の権限などについて話しているので役立つかもしれません。