【问题标题】:gpg-agent in gpg2gpg2中的gpg代理
【发布时间】:2011-10-24 10:01:56
【问题描述】:

我正在尝试对一些使用 GPG(当前为 v 1.4.10)执行对称加密/解密过程的自定义软件进行验证。我当前的加密命令如下所示:

gpg --batch --no-tty --no-use-agent --symmetric --cipher-algo AES256 --passphrase "foobar" /path/to/file_to_be_encrypted

如果没有 --no-use-agent 选项,我会收到臭名昭著的错误消息

gpg-agent 在此会话中不可用

我担心迁移到 gpg2,因为 according to the documentation 始终需要 gpg-agent,而 --no-use-agent 只是一个虚拟选项。我的 gpg 调用通过一个守护进程在后台发生,所以这是一个非常无代理的场景(加上它是对称的,我根本不需要代理)。

这种详细程度的文档很少,所以我正在寻找用户体验。 gpg2 是否更紧密地结合了代理,这样我就不必担心它的可用性?

【问题讨论】:

  • 您应该接受辛哈拉吉的回答。他给了你你需要知道的一切。

标签: gnupg encryption-symmetric


【解决方案1】:
  1. 调用gpg2 的方式,如果输出文件path/to/file_to_be_encrypted.gpg 已经存在,它可能会失败。如果您希望文件被覆盖,您应该提供--yes 选项:

    gpg2 --batch --yes --no-tty --no-use-agent --symmetric --cipher-algo AES256 --passphrase "foobar" /path/to/file_to_be_encrypted
    
  2. 当您使用对称加密时(像您一样),密码短语约束(即使 gpg-agent 设置为强制)根本不会被应用——它会起作用的。

    假设gpg-agent 是这样运行的(让mypasswords 文件甚至包含与您的密码完全匹配的禁止模式):

    eval $(gpg-agent --daemon --enforce-passphrase-constraints --min-passphrase-len 8 --min-passphrase-nonalpha 4 --check-passphrase-pattern mypasswords)
    

    那么你的命令仍然会成功。

    简而言之:gpg-agent 不会让它失败(除非它由于某种原因导致 gpg 崩溃——比如错误的配置或缺少可执行文件,这是你无法解释的)

    编辑:我刚刚检查过,在对称模式下 gpg2 将工作即使 gpg-agent 配置错误如果 gpg -agent 可执行文件丢失。

    这无关,但以防万一:我还验证了当您在 gpg-agent 丢失配置错误时尝试更改私钥密码时会发生什么:gpg2 将报告警告,甚至不会要求输入新密码,并继续工作。

来源:

【讨论】:

    猜你喜欢
    • 2018-04-26
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    • 2018-05-16
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多