Как я могу перезапустить gpg-agent?


67

Некоторые изменения в конфигурации GnuPG требуют gpg-agentперезагрузки / перезагрузки, но ... Как я могу это сделать? Я пытался gpg-agent restart, service gpg-agent restartно не получилось.

Ответы:


100

С текущей 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. Таким образом, нет причин запускать его вручную. Если вы хотите использовать включенный агент Secure Shell, вы можете запустить агент, используя:

gpg-connect-agent /bye

Обычно простой killall gpg-agent(из некорневой оболочки) вполне подходит для завершения gpg-agent. Скорее всего, вы заметите небольшую задержку при использовании GnuPG в следующий раз, так как gpg-agentон запускается снова.


2
Это изменение в GPG 2.1.x и процесс обрабатывается через dirmngr. За командами, запускаемыми затем, dirmngr --shutdownследуют, dirmngr --daemonа иногда и дополнительные опции (я также включаю конкретный домашний каталог GPG и --use-torфлаг).
Бен

1

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

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

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

и затем начните новый:

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

Явная установка --homedir при запуске гарантирует, что ваш список ps ясен, когда у вас более одного homedir; и это аналогично тому, что делает gpg, когда запускает его.

Установка GNUPGHOME при остановке не требуется, но это может сделать вас или рецензента кода более удобным.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.