我如何重新启动 gpg-agent?

我如何重新启动 gpg-agent?

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

答案1

使用当前 GPG (2.1+),停止 gpg-agent你可以使用gpgconf --kill,像这样:

gpgconf --kill gpg-agent

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

这些信息可以在gpg-agent 在线手册man gpg-agent

答案2

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

答案3

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

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

systemctl --user status gpg-agent
systemctl --user stop gpg-agent
systemctl --user start gpg-agent

答案4

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

按照如下方式终止旧代理:

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

然后开始新的:

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

在启动时明确设置 --homedir 可确保当您有多个主目录时 ps 列表清晰;它类似于 gpg 启动时所做的操作。

停止时设置 GNUPGHOME 不是必需的,但它可能会让您或代码审查者更舒服。

相关内容