В git commitits (gpg) команда git всегда запрашивает фразу-пароль во время работы gpg-agent .
Я запускаю gpg-agent с
$ 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-agent запускает pinentry-gtk-2. Последнее « .... » говорит, что gpg подписывается с помощью ключа ID.
При повторном запуске та же команда не запрашивает пароль
,
Но при запуске git gpg запрашивает фразу-пароль в командной строке, а не gpg-agent с pinentry:
$ echo test >> test.txt ; git add test.txt ; git commit -S -m "test"
....
(intro passphrase)
....
При повторном запуске (и снова ...) одна и та же команда всегда запрашивает пароль (с тем же идентификатором ключа).
Мой .gitconfig только установил имя пользователя и адрес электронной почты. Обе команды (gpg и git) запрашивают одинаковый идентификатор ключа. Вызов gpg с --use-agent работает нормально (без него нет), но git не имеет параметров для передачи в gpg (только пользовательские значения конфигурации в .gitconfig); и среда правильная.
Ведение журнала gpg-agent с уровнем отладки 8 показывает активность только с командой gpg , но ничего с git.
Я использую gnupg 1.4.12 и gpg-agent 2.0.19 (стабильная версия Debian Wheezy, официальные репозитории). Я клонировал git из репозитория github, скомпилировал и установил локально текущую версию (2.3.0.rc1.30.g76afe74) с теми же результатами.
Я проверил свои конфиги, но я не знаю, что это за проблема. Любое предложение?
Спасибо