GPG加密收件人详解 | AI生成和翻译

Home 2025.10

理解 GPG 命令与”收件人”提示

您正在运行的命令是使用 GnuPG (GPG) 加密文件 (inputfile.txt):

gpg --homedir /path/to/custom/dir -e -r recipient@example.com --encrypt inputfile.txt

这里的”收件人”是什么意思?

在 GPG 加密中:

您说得对,这是为了”发送”安全数据,但术语侧重于收件人,因为这是其密钥保护的对象。可以将其想象成用别人的挂锁锁住一个盒子——只有他们才能打开它。

为什么会出现错误:”您没有指定用户 ID。(您可以使用 ‘-r’)”以及提示?

出现此交互式提示的原因是:

  1. GPG 在您的密钥环(在自定义 homedir 中)中找不到与 recipient@example.com 匹配的公钥。
  2. 虽然提供了 -r 标志,但它无法解析为有效的密钥,因此 GPG 回退到要求您手动输入用户 ID。

提示是:

当前收件人:
输入用户 ID。以空行结束:

如何解决此问题

  1. 首先导入收件人的公钥(最常见的问题):
    • 请收件人将其公钥发送给您(通过 gpg --export -a their@email.com 导出)。
    • 导入它:gpg --homedir /path/to/custom/dir --import their-public-key.asc
    • 然后重新运行您的命令。
  2. 如果密钥已导入但不匹配
    • 列出密钥:gpg --homedir /path/to/custom/dir --list-keys
    • -r 中使用其中确切的用户 ID(例如 -r "John Doe <recipient@example.com>")。
  3. 在提示符处(作为快速解决方法):
    • 输入完整的用户 ID,例如:
      John Doe
      recipient@example.com
           
      

      (空行结束输入。)

为什么是”收件人”而不是”发件人”?

如果这不能解决问题,请分享 --list-keys 的输出(隐去敏感信息),我可以帮助调试!

参考资料


Back

x-ai/grok-4-fast

Donate