使用命令行的GnuPG加密文件会永远挂起

3

我想使用GnuPG加密一个文件

    gpg2 --homedir=~/.gnupg --always-trust=true --recipient="BlahBlah" --encrypt=/path/to/file --output=/path/to/output_file

然而,这个命令似乎会永远停止运行而不返回结果。有趣的是,在我中断进程后,确实创建了/path/to/output_file,但写入那里的字节数比原始载荷要大得多(例如我的/path/to/file只有5个字节,但事实证明写入/path/to/output_file近200个字节)。
一定有些错误,但我真的无法弄清楚出了什么问题。
我已经通过gpg --import key.asc提前导入了BlahBlah的密钥。它在GnuPG 1和GnuPG 2中都发生了。
1个回答

4
你使用了错误的方式应用--encrypt--encrypt 不需要任何参数,要处理的文件是作为最后一个参数传递的。此外,根据文档,你应该传递--output /path/to/output_file而不是--output=/path/to/output_file。最后,GnuPG区分选项和命令,并且选项应该在命令之前。

你观察到的是 GnuPG 开始写头信息,但然后等待来自 STDIN 的输入(直到被中断)。

你想要的 GnuPG 命令行是:

gpg2 --homedir=~/.gnupg --always-trust=true --recipient="BlahBlah" --output /path/to/output_file --encrypt /path/to/file

最后一个提示:使用--always-trust=true并通过用户ID解析收件人是一个非常糟糕的想法,因为本地密钥环中具有相同用户ID的任何其他密钥都可能被使用。相反,传递完整密钥的指纹,这将明确选择一个不同的密钥(使用短密钥ID也不安全)。


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