gpg-agent は git 呼び出しで要求されません

gpg-agent は git 呼び出しで要求されません

gitコミット(gpg)では、ギットコマンドは常にパスフレーズを要求しますが、gpgエージェントが走っています。

私は起動しますgpgエージェント

$ eval `gpg-agent -s --enable-ssh-support --daemon --write-env-file $HOME/.gpg-agent-info`

次に、別のターミナルを開いて、実行されているかどうかを確認します。

$ cat ~/.gpg-agent-info
GPG_AGENT_INFO=/tmp/gpg-w2HH4r/S.gpg-agent:28539:1
SSH_AUTH_SOCK=/tmp/gpg-QQTJCD/S.gpg-agent.ssh
SSH_AGENT_PID=28539
$ ps -u $USER | grep gpg-agent
28539 ?        00:00:00 gpg-agent
$ echo $GPG_AGENT_INFO $SSH_AUTH_SOCK $SSH_AGENT_PID
/tmp/gpg-w2HH4r/S.gpg-agent:28539:1 /tmp/gpg-QQTJCD/S.gpg-agent.ssh 28539
$ echo test | gpg-aes -t D2FA51BD --use-agent | gpg --use-agent
....
test
....

最初 '....' パスフレーズが必要と言われ、gpgエージェント打ち上げpinentry-gtk-2。 最後 '....'は言うグーグルキーIDを使用して署名しています。

同じコマンドを再度実行するとパスフレーズは要求されません

しかしgitを実行すると、グーグルコマンドラインでパスフレーズを要求します。pinentry の gpg-agent ではない:

$ echo test >> test.txt ; git add test.txt ; git commit -S -m "test"
....
(intro passphrase)
....

同じコマンドを再度(何度も)実行すると、常にパスフレーズ(同じキー ID に対して)が要求されます。

私の.gitconfig設定されているのはユーザー名そしてEメール両方のコマンド(グーグルそしてギット)は同じキーIDを要求します。グーグル--エージェントを使用する問題なく動作します(それがなくても動作します)が、ギット渡すオプションはありませんグーグル(ユーザー設定値のみ.gitconfig); 環境は正しいです。

ログ記録gpgエージェントデバッグレベル 8アクティビティのみ表示グーグルコマンドはありますが、ギット

私は使用していますgnupg 1.4.12そしてgpgエージェント2.0.19(Debian Wheezy 安定版、公式リポジトリ)。github リポジトリから git をクローンし、現在のバージョン (2.3.0.rc1.30.g76afe74) をコンパイルしてローカルにインストールしましたが、結果は同じでした。

設定を確認しましたが、これがどのような問題なのかわかりません。何か提案はありますか?

ありがとう

答え1

バカな私…設定オプションエージェントの使用gpg.conf問題を解決します。

ギットチェックしないgpgエージェント実行されており、グーグルオプションで呼び出す必要があります--エージェントを使用する

デフォルトのGPG動作(オプション)を変更する必要があります...そして--エージェントを使用しない他のシナリオでは。

関連情報