1

通过网络界面,我试图检查给定的公钥是否有效。bash 命令根据给定的密钥gpg --import key.pub返回import successful/failed,但我不想$data = system("/usr/bin/gpg --import $key)用于我自己的安全问题。有替代方案吗?

4

2 回答 2

1

好的,我做了一些调试,这就是我发现的:

nginx 守护进程正在运行nginx:nginx,没有主目录,nologin shell

当我执行sudo -u nginx php -r "echo system("gpg -k");"

我有/home/nginx/.gnupg: directory does not exist!

所以我执行了以下操作:

mkdir -p /home/nginx/.gnupg; chown -R nginx:nginx /home/nginx/

然后,测试是否有效:

sudo -u nginx php -r "echo system("gpg --homedir /home/nginx/.gnupg --dry-run --batch --import key.pub");

我有输出!

于 2012-11-21T17:58:50.277 回答
0

安装扩展是您的选择吗?因为您可以使用PECL/gnupg扩展中的gnupg_import()gnupg_keyinfo()函数的组合。

gnupg_keyinfo()返回属性数组,并且在这种情况下有各种有用的键。见:http ://svn.php.net/viewvc/pecl/gnupg/trunk/gnupg.c?revision=330955&view=markup#l662

于 2013-12-05T16:51:11.363 回答