Як я можу перезапустити gpg-агент?


67

Деякі зміни в конфігурації GnuPG вимагають gpg-agentперезавантаження / перезавантаження, але ... Як це зробити? Я намагався gpg-agent restart, service gpg-agent restartале не вдавався.

Відповіді:


99

З поточним GPG (2.1+) для зупинки gpg-agent ви можете користуватися gpgconf --killтаким чином:

gpgconf --kill gpg-agent

Вам не потрібно буде перезавантажувати її вручну. GPG перезапустить його, коли це буде потрібно.


6
Бувають випадки, коли ви хочете запустити агент вручну, наприклад, коли ви використовуєте його з увімкненою підтримкою ssh. Агент НЕ автоматично запускається при спробі входу в ssh.
hasufell

1
Якщо ви коли-небудь видалите ~/.gnupgкаталог, вам потрібно буде перезапустити gpg-агент вручну.
Крістофер Мартін

21

Мій кращий спосіб - с gpg-connect-agent reloadagent /bye. Дивіться gpg-connect-agent help /byeповний список команд.


10

gpg-agentне є загальносистемною послугою, але запускається один раз на кожного користувача (таким чином, нею не керує service). Хоча іноді викликається дотфайлами користувачів або, принаймні, в Debian та похідних, також коли X11 запускається (і gpg-agentвстановлюється) в /etc/X11/Xsession.d/90gpg-agent(щоб переконатися, що загальне gpg-agentвикористовується у всіх дзвінках GnuPG, незалежно від того, з терміналу чи додатків GUI); він також запускається автоматично GnuPG при необхідності. Від man gpg-agent:

Агент автоматично запускається на вимогу gpg, gpgsm, gpgconf або gpg-connect- agent. Таким чином, немає підстав запускати його вручну. У випадку, якщо ви хочете скористатись захищеним агентом оболонки, ви можете запустити агент, використовуючи:

gpg-connect-agent /bye

Зазвичай простий killall gpg-agent(з некореневої оболонки) повинен бути прекрасним для припинення gpg-agent. Ймовірно, ви побачите невелику затримку при наступному використанні GnuPG, як gpg-agentце буде запущено заново.


2
Це змінюється в GPG 2.1.x, і процес обробляється через dirmngr. Команди, які потрібно запустити, dirmngr --shutdownсупроводжуються, dirmngr --daemonа іноді й додатковими параметрами (я також включаю конкретний GPG homedir та --use-torпрапор).
Бен

1

На мій досвід, є кілька сценаріїв, коли gpg не вдасться запустити свіжий агент gpg (імпорт нового ключа?).

Вбийте старого агента так:

GNUPGHOME="${GNUPGHOME:-$HOME/.gnupg}" gpgconf --kill gpg-agent

а потім запустіть нове:

gpg-agent --homedir "${GNUPGHOME:-$HOME/.gnupg}" --daemon

Якщо явно встановити --homedir під час запуску, ви зможете зрозуміти, що ваш перелік ps зрозумілий, коли у вас є більше одного гомедіра; і це аналогічно тому, що робить gpg, коли він запускає його.

Налаштування GNUPGHOME під час зупинки не є необхідним, але це може зробити вас або переглядача коду більш комфортними.

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