使用Gpg4win命令行批量使用公钥进行加密

4
我们正在建立第一个EDI系统,该系统依赖于使用OpenPGP进行传入和传出文件加密。传入的文件使用我们的公钥加密,我们可以使用Gpg4win的命令行选项成功地使用私钥解密。
gpg --batch --passphrase "SOME_KEY" --decrypt-files "%decryptingdir%\*.pgp"

我现在需要做的是相反的操作,使用我们合作伙伴的公钥加密传出的文件。
我无法找到任何有关使用公钥批量加密的命令行文档。我认为应该按以下方式进行操作:
gpg --batch --encrypt-files "%encryptingdir%\*.pgp" --key "SOME_KEY_PATH"

有人能否建议我如何通过命令行实现此加密?
1个回答

6

使用--recipient选项来表示要加密的密钥。GnuPG区分选项和命令,应该首先使用选项。

gpg --batch --recipient [key-id] --encrypt-files "%encryptingdir%\*.pgp"

GnuPG希望将密钥导入到密钥链中,因此首先要使用gpg --import [key-file]进行导入。虽然有使用--keyring [your-key-file]的方法,但简单地导入密钥文件是更安全的选择。
对于脚本化/编程操作,最佳实践是始终指定完整指纹。请阅读关于密钥ID冲突的文章,以了解短密钥ID的问题。

谢谢建议。导入后,加密命令给我报错:“没有确保此密钥属于指定的用户”。是否可以按照这个问题的答案:https://dev59.com/Gmox5IYBdhLWcg3wDgTR,并添加选项--trust-model always? - Eds
1
这是一条消息,通知您该密钥无法通过信任网络进行验证。 如果您指定至少长键ID,甚至更好的是完整指纹,则已选择特定密钥,并且可以安全地省略信任验证,使用 --trust-model always(但不要在所有操作中普遍这样做,请三思而后行)。 - Jens Erat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接