GPG错误代码2

| GPG总是返回2。我的代码如下
$cmd = \"/usr/bin/gpg -a --recipient $to -e -o $outfile $infile\";
其中outfile是将写入加密数据的文件,infile是未加密的数据。 我不知道为什么会这样。谁能告诉我怎么了。谢谢。     
已邀请:
        GPG正在询问您是否要继续使用未签名的密钥进行加密。由于没有用户可以输入“ 1”,因此会产生错误。 要解决此问题,请放置以下开关
--yes
--always-trust
    
        看到此消息: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目录   将主目录的名称设置为directory      如果不使用此选项,则默认为   \“〜/ .gnupg \”。这没有任何意义   在选项文件中使用它。这也是   覆盖环境变量   $ GNUPGHOME。     
        您可能还需要考虑将密钥添加到可信密钥列表中:
gpg.exe --edit-key KEY_NAME
trust
5 (level of trust)
Y
Save
我遇到了
--always-trust
参数在XP窗口上无法正常工作的问题,这帮助我解决了该问题。     
        我有同样的问题,但是对于解码命令 首先,一般来说,您可以通过将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
我希望这可以帮助别人。     

要回复问题请先登录注册