我正在编写一个使用 gpg 加密的 python 脚本,并正在调试为什么某些文件未加密。在此调试会话期间,我发现了以下内容:
gpg: error retrieving '[email protected]' via WKD: Network is unreachable
gpg: [email protected]: skipped: Network is unreachable
[GNUPG:]INV_RECP 0 [email protected]
[GNUPG:]FAILURE encrypt 0123456
gpg: [stdin]: encryption failed: No data
据我了解,这是一个公钥问题(无效),并且 gpg 调用 dirmngr,它使用 WKD/WKS 从密钥服务器中查找丢失的密钥。
嗯,在我公司,当一些守护进程试图查找公钥服务器的密钥之类的东西时,就会出现安全问题。所以我的问题是,我该如何停用或限制 dirmngr 守护进程或 WKD/WKS?
正如在文档中看到的,您必须创建一个 ~/.gnupg/dirmngr.conf 文件并在其中输入一些参数,如下所示:
verbose
disable-ldap
disable-http
ignore-ldap-dp
ignore-http-dp
ignore-ocsp-service-url
no-use-tor
max-replies 0
trust-model direct
no-auto-key-locate
no-auto-key-retrieve
但是我的 dirmngr 忽略了我的配置,并愉快地使用 WKD 进行一些查找,而他有一个无效的公钥。那么我能做些什么来改变 dirmngr/WKD 的行为呢?(不,我不想更改脚本,因为这个 dirmngr/WKD 行为可能发生在任何服务器上,所以这是这个守护进程的问题)
对于系统来说,它的焦点是 Ubuntu 20.04。
答案1
问题出在 gpg.conf 上。当你遇到同样的问题时,请使用它。
~/.gnupg/gpg.conf
auto-key-locate local
在官方 gnupg 文档中,您将找到解除 WKD/WKS 服务的命令。
请关闭此话题。