2009-10-16

MsysGit で ssh のパスフレーズがパーミッション・エラーで使えない不具合

MsysGit 付属の GIT BASH で、過去記事の通りパスフレーズの設定を行ない ssh $host したら、次のやうなエラーが出て困った (ワーニングは下記の参照元をコピペした)。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0640 for '/Users/xxx/.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: /Users/xxx/.ssh/id_rsa
Permission denied (publickey,gssapi-with-mic).

.ssh/id_rsa ファイルのパーミッションが 600 になっていない。危険なので ssh 接続は行なわなかったよ。という警告。

GIT GUI 付属の chmod でパーミッションを変更しやうにも、パーミッション値が変わらない。

git-bash$ cd .ssh
git-bash$ ls -l id_rsa
-rw-r--r-- 1 masayuki ataka 2 2009-09-16 06:20 .ssh/id_rsa
git-bash$ chmod 600 id_rsa
git-bash$ ls -l id_rsa
-rw-r--r-- 1 masayuki ataka 2 2009-09-16 06:21 .ssh/id_rsa

Cygwin 付属の chmod ならパーミッションを変更できた、やうに見えるけど

cygwin-bash$ git-bash$ cd .ssh
git-bash$ ls -l id_rsa
-rw-r--r-- 1 masayuki ataka 2 2009-09-16 06:22 .ssh/id_rsa
git-bash$ chmod 600 id_rsa
git-bash$ ls -l id_rsa
-rw------- 1 masayuki ataka 2 2009-09-16 06:23 .ssh/id_rsa

GIT GUI 付属の ls で確認するとパーミッションが元に戻ってる。

git-bash$ ls -l id_rsa
-rw-r--r-- 1 masayuki ataka 2 2009-09-16 06:21 .ssh/id_rsa

そのせいか、GIT BASH 経由で ssh 接続にパスフレーズが使えない。

困った

解決方法

原因を一つに絞り込めていないのだけど、次の作業を行なったら不具合が解決した。

  1. Windows の環境変数「CYGWIN」を削除した
  2. Windows の環境変数「HOME」を削除した

両方の環境変数を削っても、Cygwin 及び MsysGit を使う上で特に問題は起きていない。

時間がなくて調べ切れてない。もしかしたら「HOME」を削除しなくても良いかもしれない。あと、環境変数「CYGWIN」には「ntsec」という値が設定されていたのだけど、その値の意味も調べてない。他の値に変更するだけでも動いたのかもしれない。詳しい方、コメント下さい。

No comments:

Post a Comment