在命令行上使用 GnuPG 加密文件永远挂起
Encrypting file using GnuPG on command line hangs forever
我想用 GnuPG 加密一个文件
gpg2 --homedir=~/.gnupg --always-trust=true --recipient="BlahBlah" --encrypt=/path/to/file --output=/path/to/output_file
然而这个命令似乎永远挂起,永远不会 return。有趣的是,在我中断进程后,确实有 /path/to/output_file
created ,但是写入的字节比原始有效载荷大得多(例如我的 /path/to/file
只有 5 个字节,但结果有将近 200字节写入 /path/to/output_file
).
肯定有问题,但我实在想不通。
我已经预先通过 gpg --import key.asc
导入了 BlahBlah
的密钥。 GnuPG 1 和 GnuPG 2 都会发生这种情况。
您应用 --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 的任何其他密钥。相反,传递完整密钥的指纹,它专门选择一个不同的密钥 (using short key IDs is not secure, either)。
我想用 GnuPG 加密一个文件
gpg2 --homedir=~/.gnupg --always-trust=true --recipient="BlahBlah" --encrypt=/path/to/file --output=/path/to/output_file
然而这个命令似乎永远挂起,永远不会 return。有趣的是,在我中断进程后,确实有 /path/to/output_file
created ,但是写入的字节比原始有效载荷大得多(例如我的 /path/to/file
只有 5 个字节,但结果有将近 200字节写入 /path/to/output_file
).
肯定有问题,但我实在想不通。
我已经预先通过 gpg --import key.asc
导入了 BlahBlah
的密钥。 GnuPG 1 和 GnuPG 2 都会发生这种情况。
您应用 --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 的任何其他密钥。相反,传递完整密钥的指纹,它专门选择一个不同的密钥 (using short key IDs is not secure, either)。