有没有办法在脚本中嵌入 GPG 公钥而不将其添加到密钥环?

Naf*_*Kay 9 shell-script gpg

我有一个脚本,基本上需要执行以下操作:

#!/bin/bash 

GPG_PUBLIC_KEY=<<EOF
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.12 (GNU/Linux)
...
-----END PGP PUBLIC KEY BLOCK-----
EOF

gpg --encrypt --with-public-key "$GPG_PUBLIC_KEY" myfile.txt
Run Code Online (Sandbox Code Playgroud)

有没有办法在不先将 GPG 密钥导入密钥环的情况下做到这一点?

Gil*_*il' 6

如果您根本不想使用用户的密钥环,请将 GPG 指向临时密钥环。

tmp=
trap 'rm -rf "$tmp"' EXIT INT TERM HUP
tmp=$(mktemp -d)
export GNUPGHOME="$tmp"
gpg --import <<EOF
…
EOF
gpg -e -r … myfile.txt
Run Code Online (Sandbox Code Playgroud)

如果您还想使用用户的密钥环,请GNUPGHOME仅在导入命令期间设置并传递--keyring "$tmp/pubring.gpg"给第二个gpg命令。