Подписание коммитов git на macOS постоянно запрашивает парольную фразу
Раньше я настраивал подпись Git commit на двух других компьютерах Mac, я пытаюсь установить его на новом и терпит неудачу по причинам, которые я не понимаю. Все машины работают High Sierra 10.13.6 (17G65)
1) Установленные пакеты через Homebrew
brew install gnupg gpg-agent pinentry-mac gpg1
В ~/.gnupg/gpg.conf
У меня определен сервер ключей, и
use-agent
В ~/.gnupg/gpg-agent.conf
pinentry-program /usr/local/bin/pinentry-mac
2) Добавлен мой закрытый ключ (он отображается правильно работает gpg -K
)
3) Если я бегу gpg
например с echo "test" | gpg --clearsign
Я вижу приглашение pinentry с флажком для сохранения ключевой фразы в связке ключей. В этот момент повторное выполнение этой же команды больше не будет запрашивать пароль.
Если я пытаюсь подписать коммит, я получаю не приглашение pinentry, а приглашение в терминале (вам нужно предоставить пароль для разблокировки и т. Д.). Я могу ввести свой пароль и подпись работает, но мне нужно вводить парольную фразу каждый раз.
Я пытался удалить пакеты и начать с нуля несколько раз, но не повезло.
1 ответ
По крайней мере после трех часов борьбы с этим я понял, что Git не использует gpg
(который я тестировал с echo
), но gpg1
, echo "test" | gpg1 --clearsign
вел себя как git commit -S
,
Пришлось изменить мой .gitconfig
некоторое время назад, когда он сломался после обновления Homebrew
[gpg]
program = /usr/local/bin/gpg1
По некоторым причинам этот конфиг работает на старых Mac, но не на новом. Убрал эту строку, подпись работает как положено с помощью gpg
и нет запросов на пароль.
Также удален gpg1 на данный момент
brew uninstall gpg1