Використання GnuPG та його gem-агента демона


9

Я використовую, gpg-agentщоб пам’ятати і GnuPGвводити свій пароль при складанні Debian/Ubuntuпакетів. Але я все ще плутаюсь, як це gpg-agentпрацює. Я закликаю gpg-agent:

eval $(gpg-agent --daemon)

Це працює іноді. Але мене турбує те, що іноді це не працює. Тобто, іноді процес збирання запитує мої GnuPGпаролі один раз, іноді - ні, а іноді - багато разів. Це все відбувається під час однієї одноосібної сесії, після того як я викликав, gpg-agentяк і раніше. Цього разу не запитуючи пароль, це не гарантує, що наступного разу мене не запитають. Я досі не зрозумів, чому gpgвирішує запросити мене на пароль, а чому ні.

Чи трапляється і з вами?

Дякую


1
Вам потрібно буде витратити деякий час, щоб спробувати визначити, за яких обставин це не вдається та в яких обставинах це вдається. Якщо ви можете описати, що надійно пов’язано з невдачею, тоді хтось інший швидше задумається про рішення.
bignose

У Emacs для GNUS та .authinfo.gpgя отримав підказку щодо використання gpg2, яка gpg-agentпов'язана з. Так (setq epg-gpg-program "/usr/bin/gpg2")працював для мене. Можливо, вам доведеться виявити, які з ваших програм мають проблему, можливо, вони віддають перевагу gpg(1).
Брейді Тренер

Відповіді:


7

Знайдено , як правильно використовувати gpg-agentз http://tr.opensuse.org/SDB:Using_gpg-agent

Після цього мій gpg-agentдемон зараз кешує GnuPGпаролі належним чином. У моєму налаштуванні не було нічого поганого, я просто не знав, як перевірити, керуються чи мої GnuPGпаролі правильно чи ні.

Тепер я роблю:

echo "test" | gpg -ase -r 0xMYKEYID | gpg

З сайту: "Замініть 0xMYKEYID своїм ідентифікатором ключа GnuPG. Під час виконання цієї команди агент повинен двічі відкрити діалог графічного пароля: спочатку для підписання або шифрування (gpg -ase) (gpg -ase), потім для розшифрування або перевірки підпису ( | gpg). Відтепер щоразу, коли GnuPG використовується (з командного рядка або вбудований у графічну програму, таку як KMail), пароль gpg-агента передаватиметься автоматично (поки не закінчиться час та графічний інтерфейс не буде зачинено)."

І щоб уникнути закінчення терміну кешування, я тепер встановив надзвичайно тривалий час очікування:

$ cat ~/.gnupg/gpg-agent.conf
max-cache-ttl 60480000
default-cache-ttl 60480000

Відповідно до linux.die.net/man/1/gpg-agent , ви також можете додати --write-env-file "${HOME}/.gpg-agent-info"при запуску gpg-агента, а потім додати if [ -f "${HOME}/.gpg-agent-info" ]; then . "${HOME}/.gpg-agent-info"; export GPG_AGENT_INFO fi до свого .bashrc, щоб виявити, чи вже працює агент. Схоже, трохи більш чисте рішення.
Шон Бін

@SeantheBean, чудово. Я
перевірю

WARNING: "--write-env-file" is an obsolete option - it has no effectяк мінімум Apr 4 '16. Ref: serverfault.com/a/481174
xpt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.