V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
2i2Re2PLMaDnghL
V2EX  ›  分享发现

WSL GPG 『keyserver receive failed』问题

  •  
  •   2i2Re2PLMaDnghL · 2021-10-11 14:13:37 +08:00 · 1177 次点击
    这是一个创建于 1140 天前的主题,其中的信息可能已经有所发展或是发生改变。

    碰到过几次,搜索引擎找到命令输入莫名其妙地解决了,这次算是完全高清楚了。

    背景

    尝试使用 gpg --auto-key-retrieve --verify 时,会发生『 keyserver receive failed 』的错误。
    第一反应当然是需要过代理,然而并没有效果。

    TL;DR

    是 dirmngr 未启动,所以只要启动一下就好了。(原样照抄的,大约有一半内容其实不需要)

    sudo pkill dirmngr; dirmngr --debug-all --daemon --standard-resolver
    

    排查过程

    总之还是随便地把报错在网上寻找一番,在 StackOverflow 的某回答中找到上述命令。问题恰好解决了。

    幸好,这次问题未解决前尝试过 gpg --debug-all,一对比,有问题的时候根本没有 dirmngr 的 trace,而问题解决后有很多条 dirmngr 的 trace

    man dirmngr 的信息显示,从 GnuPG 2.1 版本开始,与 OpenPGP 服务器的连接全部由 dirmngr 接管。

    然后再看 dirmngr 在原生 Ubuntu 上是怎么运行起来的?
    使用 systemd 的 .socket 单元按需启动。而众所周知地,WSL 无论 1/2 的 init 都不是 systemd 。

    站内搜索了一下 gpg 和 wsl 仅有一处提及 apt-key add 类似问题。根据启动方式原因,大概不适用于 apt-key add 命令。

    所以 Microsoft 什么时候能让 init 适配一下 systemd 或者干脆别自写 init 了?

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2795 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 06:17 · PVG 14:17 · LAX 22:17 · JFK 01:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.