Подписание коммитов 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
Другие вопросы по тегам