在--batch模式下使用gpg --search-keys

时间:2014-07-18 19:34:14

标签: python batch-file gnupg pgp

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

我希望有一些我错过的gpg旗帜。或者,将与密钥服务器交互的库(最好是python)可以。

4 个答案:

答案 0 :(得分:1)

使用

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 ..

应该有效

答案 1 :(得分:0)

使用--recv-keys获取密钥而不提示。

答案 2 :(得分:0)

当您导入非常大部分信任网时,GnuPG表现不佳,特别是在导入阶段。

我要设置本地密钥服务器,只需将所有密钥转储到那里(2014年下载大小不到10GB)并直接查询您自己的本地密钥服务器。

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

答案 3 :(得分:0)

如果是hkps服务器,则可以使用以下方法:

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