通过网络界面,我试图检查给定的公钥是否有效。 bash命令gpg --import key.pub
根据给定的密钥返回import successful/failed
,但我不想将$data = system("/usr/bin/gpg --import $key)
用于我自己的安全问题。还有其他选择吗?
答案 0 :(得分: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");
我有输出!
答案 1 :(得分:0)
是否为您安装扩展程序?因为您可以使用gnupg_import()扩展名中gnupg_keyinfo()和PECL/gnupg功能的组合。
gnupg_keyinfo()
返回属性数组,并且在这种情况下有各种键可用。见:http://svn.php.net/viewvc/pecl/gnupg/trunk/gnupg.c?revision=330955&view=markup#l662