最新版本在生成密钥时gpg
启动持久用户进程 ( )。gpg-agent
即使命令终止后,该进程仍保持运行。我想改变这种行为。
目前,我正在使用unshare
PID 命名空间来隔离和终止任何gpg
仍在运行的内容。不幸的是,这种方法需要提升权限,而这些权限可能并不总是可用(root 和对 pid/mount 命名空间的访问)。
有没有一种方法可以让脚本“干净地”生成 gpg 密钥gpg
而不使用
- 让进程继续运行,或者
- 需要提升权限?
为了完整起见,以下大致说明了我当前的设置:
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
。