[解決済み】Git GUIやssh-keygenを使用したSSH秘密鍵のパーミッションがオープンすぎる。
質問
最近、cloneやgithubへのpushができなくなったので、根本的な原因を探っています。
これはWindowsの場合です
msysgitの他にcygwin + gitも持っています。
Msysgitは以下のオプションでインストールしました。
- OpenSSH
- Windows のコマンドプロンプトから Git を使う
これで4つの環境でgitを使ってみることができました。
- Windowsのcmdプロンプト
- パワーシェル
- Git Bash
- Cygwin
どういうわけか、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
これは、msysgitで使用されている、私のc:the \usersbenhtmlフォルダの中の.sshフォルダを使用しているのです。 .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
は、以前と同じパーミッションが得られます。
UPDATEしてください。
cygwinでこれらのファイルのパーミッションを修正しようとしたところ、cygwinはパーミッションを正しく報告しますが、gitbashはそうしません。 alt text http://cdn.cloudfiles.mosso.com/c54102/app7962031255448924.jpg
これらのパーミッションを本当に修正する方法について、何かアイデアはありますか?
解決方法は?
ディレクトリ全体のパーミッションを変更したとのことですが、これはスプラッシュさんと同意見で、悪い考えだと思います。 もしディレクトリの元のパーミッションを覚えているのであれば、それを元に戻して、次のようにしてみてください。
cd ~/.ssh
chmod 700 id_rsa
を.sshフォルダの中に入れてください。 これで id_rsa ファイルが所有者 (あなた) のみの rwx (読み取り、書き込み、実行) に設定され、他の人はゼロアクセスになります。
元の設定を覚えていない場合は、新しいユーザーを追加し、そのユーザー用のSSH鍵のセットを作成します。これにより、デフォルトのパーミッションを持つ新しい.sshフォルダが作成されます。 この新しい.sshフォルダを、.sshフォルダとファイルをリセットするためのパーミッションの基準として使用することができます。
それでもダメなら、msysgitをアンインストールして、コンピュータ上のすべての.sshフォルダを削除してから(念のため)、希望の設定でmsysgitを再インストールして、完全に最初からやり直してみます(もう試したと言ったと思うのですが)。
編集しました。また、Google経由でこのリンクを見つけました。 Linux での "WARNING: UNPROTECTED PRIVATE KEY FILE!" を修正する。 linuxを対象にしていますが、liunxのパーミッションなどの話なので、参考になるかもしれません。
関連
-
[解決済み】git rev-parseは何をするのですか?
-
[解決済み] [email protected] へのいくつかの参考文献のプッシュに失敗しました。
-
[解決済み】「オリジン/マスターへのプッシュが拒否されました」というエラーが常に発生するのはなぜですか?
-
[解決済み】gitの「not something we can merge」エラーの解決方法
-
[解決済み] ssh "パーミッションが開きすぎています "エラー
-
[解決済み] Git上でシェルコマンドを実行する際に使用するSSH-keyの秘密鍵を指定する方法は?
-
[解決済み] "保護されていない秘密鍵ファイル!" Amazon EC2インスタンス(AWS)へのSSH利用時のエラーについて
-
[解決済み] Git が ssh 鍵のパスフレーズを要求し続ける
-
[解決済み] SSHキーです。"パーミッション 0644 for 'id_rsa.pub' is too open." on mac
-
[解決済み] git push で指定したドメインの SSH 鍵を指定する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Git サブモジュール head 'reference is not a tree' エラー
-
[解決済み】未マージファイルがあるため、Gitマージができない
-
[解決済み] このリポジトリで別の git プロセスが実行されているようです。
-
[解決済み] GIT_DISCOVERY_ACROSS_FILESYSTEM が設定されていない。
-
[解決済み] Git エラー : 'upstream' は git リポジトリでないようです。
-
[解決済み] git initを2回実行すると、リポジトリが初期化されますか?それとも既存のリポジトリを再初期化しますか?
-
[解決済み] fatal: bad revision "とはどういう意味ですか?
-
[解決済み] Gitのフォルダ構造で変更・追加されたファイルのみをエクスポートする機能
-
[解決済み] git リモートリポジトリには、ローカルブランチにマージされていないコミットが含まれています。
-
[解決済み] リモートブランチにプッシュできない、ブランチに解決できない