Как я могу перезапустить 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 перезапустит его, когда это будет необходимо.

sideshowbarker
источник
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 при остановке не требуется, но это может сделать вас или рецензента кода более удобным.

Бен Хайд
источник