如何重新启动gpg-agent?


67

GnuPG配置中的某些更改要求gpg-agent重新启动/重新启动,但是...我该怎么做?我尝试了gpg-agent restartservice gpg-agent restart但没有成功。

Answers:


99

使用当前的GPG(2.1+),您可以使用停止运行 ,如下所示:gpg-agentgpgconf --kill

gpgconf --kill gpg-agent

您无需手动重新启动它。GPG会在需要时重新启动它。


6
在某些情况下,您想手动启动代理,例如,在启用ssh支持的情况下使用它。当您尝试ssh登录时,代理不会自动启动。
hasufell

1
如果您删除了~/.gnupg目录,则需要手动重新启动gpg代理。
Christopher Martin

21

我的首选方式是gpg-connect-agent reloadagent /bye。请参阅gpg-connect-agent help /bye以获取命令的完整列表。


10

gpg-agent不是系统范围的服务,而是每个用户启动一次(因此,它不受的管理service)。尽管有时有时是由用户的点文件或至少在Debian及其衍生版本中调用的,而且在启动(并gpg-agent安装)X11时也要调用它/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(来自非root用户的shell)终止即可gpg-agent。下次gpg-agent重新使用GnuPG时,您可能会观察到稍有延迟,就像重新启动一样。


2
这在GPG 2.1.x中有所更改,该过程通过dirmngr处理。然后要运行的命令dirmngr --shutdown后面是dirmngr --daemon,有时还有其他选项(我还包括一个特定的GPG homedir和该--use-tor标志)。
2016年

1

以我的经验,在某些情况下,gpg无法启动新的gpg代理(导入新密钥?)。

这样杀死旧的代理:

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

然后启动新的:

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

启动时显式设置--homedir可以确保当您有多个homedir时,您的ps列表清晰可见。它与gpg启动时的操作无关。

不必在停止时设置GNUPGHOME,但这可能会使您或代码检查者更自如。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.