我有一个脚本,基本上需要执行以下操作:
#!/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 密钥导入密钥环的情况下做到这一点?
如果您根本不想使用用户的密钥环,请将 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命令。