如何重新启动 gpg-agent?

Fel*_*ipe 110 services gnupg gpg-agent

GnuPG 配置中的一些更改需要gpg-agent重新启动/重新启动(根据文档),但是...我该怎么做?我试过gpg-agent restart,,service gpg-agent restart但没有成功。

sid*_*ker 149

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

gpgconf --kill gpg-agent
Run Code Online (Sandbox Code Playgroud)

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

  • 在某些情况下,您希望手动启动代理,例如当您在启用 ssh 支持的情况下使用它时。当您尝试 ssh 登录时,代理不会自动启动。 (11认同)
  • 如果您删除了 `~/.gnupg` 目录,您将需要手动重新启动 gpg 代理。 (5认同)
  • 如果要使用不在默认路径上的自定义配置,则需要手动启动 gpg-agent。 (2认同)
  • 遵循“GPG 将在需要时重新启动它”:对我来说,运行 `gpg -K`(它只是读取和打印密钥)来触发 gpg-agent 的重启就足够了。 (2认同)

小智 35

我的首选方式是使用gpg-connect-agent reloadagent /bye. 查看gpg-connect-agent help /bye完整的命令列表。


小智 17

在现代基于 systemd 的 Linux 发行版上,gpg-agent由用户空间 systemd 控制。

您可以使用以下命令检查/启动/停止它(无需 sudo):

systemctl --user status gpg-agent
systemctl --user stop gpg-agent
systemctl --user start gpg-agent
Run Code Online (Sandbox Code Playgroud)


Jen*_*rat 11

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 Agent,您可以使用以下命令启动代理:

gpg-connect-agent /bye
Run Code Online (Sandbox Code Playgroud)

通常,一个简单的killall gpg-agent(来自非 root shell)应该可以用来终止gpg-agent. 下次使用 GnuPG 时,您可能会观察到轻微的延迟,因为gpg-agent再次启动。

  • 这在 GPG 2.1.x 中发生了变化,该过程通过 dirmngr 处理。然后运行的命令是 `dirmngr --shutdown` 后跟 `dirmngr --daemon` 有时还有其他选项(我还包括一个特定的 GPG homedir 和 `--use-tor` 标志)。 (2认同)