Мне нравится подписывать мои git коммиты с моим ключом PGP, поэтому я был очень встревожен, когда пошел, git commit -S
но вместо запроса моей ключевой фразы PGP, git просто начал зависать. Я не вносил изменений в настройки GPG в течение нескольких месяцев и с тех пор совершил много коммитов без проблем. Кроме того, когда я пытаюсь просмотреть свои закрытые ключи с помощью gpg -K
, gpg зависает. Однако, когда я запускаю gpg -k
просмотр моих открытых ключей, он возвращает список как обычно. Надеюсь, кто-то будет иметь представление о том, что вызывает эту проблему и как ее исправить.
16
gpg-agent
или аналогичные настройки в .bashrc (и т. д.) удаленной системы, и настроены ли они для запроса на дисплее X удаленного компьютера или аналогичного? У меня были подобные проблемы в прошлом (например, ssh-ing с терминала на моем устройстве mythtv на мой настольный компьютер для запуска чего-либо, требующего gpg. Также были похожие проблемы с этимssh-agent
), и я с помощью brute-force «исправил» егоexport GPG_TTY=$(tty)
в .bashrc, чтобы убедиться, что подсказка всегда находится на текущем tty. я не могу терпеть GUI passwd подсказки так или иначе.gpg-agent
странице руководства, что установка GPG_TTY, как указано выше, - это не то, что я взломал для работы, это требуется. На странице руководства написано, что вы всегда должны устанавливать это в своем .bashrc, как я, а также говорится,It is important that this environment variable always reflects the output of the tty command.
что, должно быть, это было то, откуда я это взял. Еще одна вещь, о которой вы должны быть осторожны, это программа pinentry, используемая gpg-agent. У меня есть мое множество (в~/.gnupg/gpg-agent.conf
) к/usr/bin/pinentry-curses
Ответы:
Я столкнулся с этой проблемой (OSX Sierra 10.12.6, gpg / GnuPG 2.2.5)
Команды, которые будут зависать:
Мое решение было таким же, как упомянуто Джоном выше (т. Е. Kill gpg-agent), так как большинство других методов how-can-i-restart-gpg-agent также зависали.
Затем для подписи коммитов git я установил tty env, как указано выше в cas, а также в gpg-fail-to-sign-commit-object .
источник
gpg-agent
кажется, единственный способ заставить его работать снова.