2016-11-20 67 views
0

最近,我们切换到Ubuntu 16.04和那里的PHP 7.0要发送与PHP 7 GPG加密的消息时索要密码

没有我运行中的问题与我们的PHP脚本之一,此脚本中使用更新的成熟成熟的邮件界面并发送GPG签名邮件给他们,以供他们用于身份验证。但现在,php cli开始提示输入密码来使用密钥。我怎样才能防止这个密码问题,我试图从密钥中删除密码,但这并没有帮助。

我的PHP代码如下所示:

$gpgkey = "some thubprint of a key"; 
$gpgpwd = "Secret"; 
$res = gnupg_init(); 
gnupg_addsignkey($res,$gpgkey,$gpgpwd); 
$updatemessages = "test"; 
$signedupdatemessages = gnupg_sign($res, $updatemessages); 

希望有知道sollution

随着亲切的问候,

巴斯范登Dikkenberg

回答

0

的Ubuntu 16.04船舶相当最新版本的GnuPG,它不允许在没有进一步麻烦的情况下设置密码。这是因为GnuPG应用程序相当大(因此容易出现安全问题)应该无法访问私钥和密码短语,因此这些操作被提取到较小的gpg-agent(现在正在查询密码短语)。

删除密码/将其设置为空密码应该可以很好地工作,请确保为正确的用户设置密码(GnuPG具有每个系统用户密钥库)。

setting a passphrase is using the gpg-preset-passphrase utility的“GnuPG-2.0-way”,通常安装在/usr/lib/gnupg2/gpg-preset-passphrase中,用于Debian和派生分发。您需要通过添加allow-preset-passphrase~/.gnupg/gpg-agent.conf允许这样的操作,并运行

/usr/lib/gnupg2/gpg-preset-passphrase -c [keygrip] 

,同时提供对标准输入的密码(做使用echo-P选项,使用这两种方式的所有其他系统用户可以读取密码!)。 keygrip可以通过运行gpg2 --with-keygrip --list-secret-keys获得。

+0

Dis解决isue在php :-( –