2009-11-19

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

MsysGit 付属の GIT BASH で ssh の passphrase を使おうとするとエラーになる。この不具合について、Windows の環境変数「CYGWIN」を削除するとよいとのエントリーを一か月程前に書いた。

この件について、追加情報を見つけた。

せっかくなので訳しておく。

Cygwin can emulate more Unix-like file permissions but it is not enabled by default. One has to add "ntea" to CYGWIN variable in the cygwin.bat file in the cygwin root directory, which tends to be C:\cygwin. For example I have:

set CYGWIN=tty ntea

in C:\cygwin\cygwin.bat With this, "chmod 0600 .id_rsa" works as in Unix. ssh stopped complaining and I could ssh w/o entering a password. Happy ending.

(訳) Cygwin は Unix に似たファイル・パーミッションを (Windows において) エミュレートできますが、デフォールトではその機能がオフになっています。そこで、「ntea」という値を CYGWIN 変数に追加しましょう。これは cygwin のルート・ディレクトリーにある cygwin.bat ファイルに書けば良いです。cygwin のルート・ディレクトリーは通は c:\cygwin に設定されているでしょう。例えば、私は C:\cygwin\cygwin.bat に次のように設定しました。

set CYGWIN=tty ntea

この設定を入れると、「chmod 0600 .id_rsa」が Unix と同じように動きました。ssh は文句を言う (警告を出す) ことがなくなり、パスワードなしで私はログインできるようになりました。ハッピー・エンディング

やはり、環境変数 CYGWIN の ntea という値がキモみたい。GIT BASH で、同じやうに環境変数「CYGWIN」の設定をすればいいのかどうかは試してない。とりあえず、ntea が何なのかが分かった。少しモヤモヤがなくなった気分。

No comments:

Post a Comment