如何在脚本中生成 gpg 密钥而不让 gpg-agent 运行?

如何在脚本中生成 gpg 密钥而不让 gpg-agent 运行?

最新版本在生成密钥时gpg启动持久用户进程 ( )。gpg-agent即使命令终止后,该进程仍保持运行。我想改变这种行为。

目前,我正在使用unsharePID 命名空间来隔离和终止任何gpg仍在运行的内容。不幸的是,这种方法需要提升权限,而这些权限可能并不总是可用(root 和对 pid/mount 命名空间的访问)。

有没有一种方法可以让脚本“干净地”生成 gpg 密钥gpg而不使用

  1. 让进程继续运行,或者
  2. 需要提升权限?

为了完整起见,以下大致说明了我当前的设置:

sudo unshare -fp --mount-proc sh -c 'gpg --homedir /tmp/TEMP_DIR --generate-key --batch; kill -9 -1' <<EOF
Key-Type: DSA
Key-Length: 768
Name-Real: TEMPKEY
Name-Comment: TEMPKEY
Name-Email: noreply@localhost
Expire-Date: 0
%no-protection
EOF

答案1

一种可能性是在不再需要代理时停止它:

gpgconf --kill gpg-agent

由于您使用的是自定义主目录,因此您需要设置GNUPGHOME或指定--homedir

GNUPGHOME=/tmp/TEMP_DIR gpgconf --kill gpg-agent

如果要停止所有 GnuPG 相关进程,请指定all而不是gpg-agent

相关内容