【问题标题】:GPG Error Code 2GPG 错误代码 2
【发布时间】:2011-06-14 21:36:22
【问题描述】:

GPG 在结果中总是返回 2。我的代码如下

$cmd = "/usr/bin/gpg -a --recipient $to -e -o $outfile $infile";

其中 outfile 是要写入加密数据的文件,infile 是未加密数据。

我不知道为什么会这样。谁能告诉我有什么问题。谢谢。

【问题讨论】:

    标签: php encryption gnupg


    【解决方案1】:

    GPG 正在询问您是否要继续使用未签名密钥进行加密。由于没有用户可以输入Y,因此会产生错误。

    要解决这个问题,请放置以下开关

    --yes--always-trust

    【讨论】:

      【解决方案2】:

      查看此消息:http://lists.gnupg.org/pipermail/gnupg-users/2008-January/032410.html

      这似乎是一个权限问题。 gpg 正在尝试访问它无法访问的目录,因此失败并出现致命错误。 (错误代码2)

      你可以通过指定一个 homedir 指令和一个 gpg 可写的目录来解决这个问题。像这样:

      $cmd = "/usr/bin/gpg -a --recipient $to -e -o $outfile $infile --homedir /path/to/dir";
      

      来自man gpg的信息:

      --homedir 目录
      将主目录的名称设置为目录

      如果不使用此选项,则默认为 “~/.gnupg”。这是没有意义的 在选项文件中使用它。这也是 覆盖环境变量 $GNUPGHOME。

      【讨论】:

      • 所以目录的路径类似于/something/something/.gnupg?我还将GNUPGHOME 设置为.gnupg 文件夹的路径
      • 来自链接:“另外,由于某种原因,直接设置GNUPGHOME 不起作用。”。我认为您应该使用--homedir。是的,它会是这样的。不过,该目录需要可由您的脚本写入。
      • 我想通了...我需要 --yes--always-trust 因为它要求输入,但由于它在 php 中,它没有得到输入,因此它中断了。
      • @thiago 我尝试了“是”并且“始终信任”...没有运气。我现在正在尝试使用 homedir 方法,但我不知道我想将它设置为什么......?
      【解决方案3】:

      您可能还想考虑将密钥添加到受信任的密钥列表:

      gpg.exe --edit-key KEY_NAME
      trust
      5 (level of trust)
      Y
      Save
      

      我遇到了一些--always-trust参数在XP windows下无法正常工作的问题,这帮助我解决了问题。

      【讨论】:

      • 信任级别不只适用于验证消息/文件签名吗?我认为密钥必须由您或您签名的其他人签署,才能将其用作加密接收方。
      【解决方案4】:

      我也遇到了同样的问题,但是对于解码命令

      首先,一般来说,您可以通过将 stderr 重定向到 stdout 来获取错误消息。

      $cmd = "/usr/bin/gpg -a --recipient $to -e -o $outfile $infile 2>&1";
      

      然后您可以修改 gpg 的参数以满足您的需要。因为我有一个使用密码密钥加密的文件,所以我必须添加几个参数。

      我开始了

      gpg  -o $out -d $path
      

      但它抱怨,它无法打开 tty,然后使用 --no-tty 它输出一些其他错误,最后用密码短语解码文件的命令是

      gpg --batch --passphrase $pass_phrase --no-tty -o $outfile -d $path_to_encoded_file
      

      我希望这对某人有所帮助。

      【讨论】:

        猜你喜欢
        • 2022-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-17
        • 2018-06-21
        • 2018-06-11
        • 1970-01-01
        相关资源
        最近更新 更多