Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在批处理模式下使用gpg--搜索键_Python_Batch File_Gnupg_Pgp - Fatal编程技术网

Python 在批处理模式下使用gpg--搜索键

Python 在批处理模式下使用gpg--搜索键,python,batch-file,gnupg,pgp,Python,Batch File,Gnupg,Pgp,我正在开发一个应用程序,它最终将在一组预定义的电子邮件地址之间绘制gpg签名连接。我需要它以编程方式从密钥服务器收集公钥。我有一个工作模型,它将使用--search key选项来创建gpg。但是,当使用--batch标志运行时,我会收到错误“gpg:抱歉,我们处于batchmode-无法获取输入”。当我在没有--batch标志的情况下运行时,gpg需要输入 我希望gpg有一些我错过的标志。或者,一个与密钥服务器交互的库(最好是python)就可以了。使用--recv密钥在没有提示的情况下获取密钥

我正在开发一个应用程序,它最终将在一组预定义的电子邮件地址之间绘制gpg签名连接。我需要它以编程方式从密钥服务器收集公钥。我有一个工作模型,它将使用--search key选项来创建gpg。但是,当使用--batch标志运行时,我会收到错误“gpg:抱歉,我们处于batchmode-无法获取输入”。当我在没有--batch标志的情况下运行时,gpg需要输入


我希望gpg有一些我错过的标志。或者,一个与密钥服务器交互的库(最好是python)就可以了。

使用--recv密钥在没有提示的情况下获取密钥。

当您导入信任网的很大一部分时,GnuPG的性能不是很好,尤其是在导入阶段

我会设置一个本地密钥服务器,只需将所有密钥转储到其中(2014年下载大小小于10GB),然后直接查询您自己的本地密钥服务器

非常容易设置,尤其是查询,因为它将数据存储在PostgreSQL数据库中。

使用

gpg --batch --keyserver hkp://pool.sks-keyservers.net --search-keys ...
并解析输出以获取密钥ID

之后

gpg --batch --keyserver hkp://pool.sks-keyservers.net  --recv-keys key-id key-id ..

应能工作

在hkps服务器的情况下,以下各项可以工作:

gpg --keyserver hkps://***HKPSDOMAIN*** --recv-keys \
$(curl -s "https://***HKPSDOMAIN***/?op=index&options=mr&search=***SEARCHSTRING***"\
|grep pub|awk -F ":" '{print $2}')

--recv keys需要密钥id。我正在尝试通过电子邮件地址查找密钥id。我应该注意到,如果--recv-keys接收电子邮件,执行搜索,并导入任何生成的密钥,这正是我要寻找的选项。在我的特殊情况下,我处理的密钥不会超过100个。不过,运行本地密钥服务器并以这种形式处理数据可能会有很大帮助。我试试看。谢谢