GPG висить, коли доступ до приватних ключів


16

Мені подобається підписувати свої git-зобов’язання за допомогою мого ключа PGP, тому я був дуже занепокоєний, коли перейшов, git commit -Sале замість того, щоб запропонувати мою парольну фразу ключа PGP, git просто почав зависати. Я не змінив налаштування GPG протягом декількох місяців і з тих пір зробив багато комісій без проблем. Крім того, коли я намагаюся переглянути свої приватні ключі gpg -K, gpg висить. Однак, коли я біжу gpg -kпереглядати свої відкриті ключі, він повертає список як звичайний. Сподіваємось, хтось матиме уявлення про те, що викликає цю проблему та як її виправити.


ти це робиш за ssh? якщо так, чи є у вас gpg-agentчи подібні установки в .bashrc (тощо) віддаленої системи та налаштовані на запит на дисплеї X віддаленого чи подібному? У мене були подібні проблеми в минулому (наприклад, ssh-ing з терміналу на моєму вікні mythtv до моєї настільної машини, щоб запустити щось, що вимагає gpg. Також були подібні проблеми ssh-agent), і я грубою силою "виправив" це export GPG_TTY=$(tty)в .bashrc, щоб переконатися, що підказка завжди знаходиться на поточному tty. я не витримую підказки passwd GUI все одно.
cas

1
Ні, я не роблю це через SSH. Що дивно, що я виявив, що якщо я вбиваю gpg-агент, gpg працює знову. Я намагаюся розібратися, чому і прийняти довгострокове рішення.
Джон Левенгаген

Щойно я помітив на gpg-agentсторінці "man", що встановлення GPG_TTY як вище - це не те, що я зламав для роботи, це потрібно. Сторінка чоловіка говорить, що ви завжди повинні встановлювати її у своєму It is important that this environment variable always reflects the output of the tty command.. Ще одна річ, над якою потрібно бути обережною - це програма, що використовується gpg-агентом. Я встановив ( ~/.gnupg/gpg-agent.conf/usr/bin/pinentry-curses
-ла

Відповіді:


21

Я натрапив на цю точну проблему (OSX Sierra 10.12.6, gpg / GnuPG 2.2.5)

Команди, які будуть висіти:

gpg -K # --list-secret-keys
gpg -d # --decrypt
gpg --edit-key
gpgconf --kill gpg-agent

Моє рішення було таким самим, як згадував Джон вище (тобто, вбивати gpg-агент), як і більшість інших методів щодо того, як-Can-i-restart-gpg-agent також буде висіти.

# Solution    
pkill -9 gpg-agent

Тоді для підписання git-комітетів я встановлюю tty env, як згадується cas вище, а також на gpg-failed-to-sign-commit-object .

export GPG_TTY=$(tty)

Тож вам доведеться повторно вбивати gpg кожного разу при перезавантаженні? Це я вже давно маю робити. Сподіваюся, ми знайдемо спосіб виправити це назавжди.
Джон Левенгаген

Щойно я почав мати проблему сам. Вбивство, gpg-agentздається, є єдиним способом змусити його знову працювати.
Олексій Тайлер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.