`gpg:密钥服务器发送失败:发送到 hkp://pool.sks-keyservers.net 时没有可用的密钥服务器

问题描述 投票:0回答:5

我正在使用以下命令

gpg --keyserver hkp://pool.sks-keyservers.net --send-keys <MY-8-DIGIT-SIGNATURE>

按照本文的指导https://getstream.io/blog/publishing-libraries-to-mavencentral-2021/

但是,当我尝试时,它会报告

gpg: sending key <MY-16-DIGIT-SIGNATURE> to hkp://pool.sks-keyservers.net
gpg: keyserver send failed: No keyserver available
gpg: keyserver send failed: No keyserver available

我上面的命令有什么问题?

更新调查结果
这适用于 macOS Catalina、Intel Core i7 机器。 但它不适用于 macOS Big Sur、M1 ARM64 机器。

不确定是Big Sur还是M1 ARM64机器问题?

gpg-signature keyserver
5个回答
12
投票

找到了解决该问题的方法。

首先我使用命令杀死

dirmngr

gpgconf --kill dirmngr

然后,我以

dirmngr
 开始 
--standard-resolver

dirmngr --debug-all --daemon --standard-resolver

最后,在另一个终端上,我运行

gpg --verbose --keyserver hkp://pool.sks-keyservers.net --recv-keys 0x0A292B5F8A3C247F586F19D7E1AF518CC4B1DC35

这给了我结果

gpg: key E1AF518CC4B1DC35: "Kristof (GPGTools) <[email blocked]>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1

不确定为什么我需要

--standard-resolver
,但它适用于我的情况。

更新

找到了一种更好的方法,默认为 dirmngr 提供

standard-resolver
。只需将
standard-resolver
添加到
~/.gnupg/dirmngr.conf
文件即可。


9
投票

https://sks-keyservers.net/ "此服务已弃用。 这意味着不再维护该服务,并且不会颁发新的 HKPS 证书。不应期望服务可靠性。

2021 年 6 月 21 日更新: 由于更多 GDPR 删除请求,将不再提供池的 DNS 记录。”

2021-06-21更新:您可以使用替代服务器,例如:

  • keyserver.ubuntu.com
  • keys.openpgp.org
  • pgp.mit.edu

像这样的东西:

gpg --keyserver keys.openpgp.org --send-key [key id]


2
投票

我有类似的问题。它对我有用

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 34893610CEAA9512

您可以使用脚本

#!/bin/bash

declare -a keyservers=(
    "hkp://keyserver.ubuntu.com:80"
    "keyserver.ubuntu.com"
    "ha.pool.sks-keyservers.net"
    "hkp://ha.pool.sks-keyservers.net:80"
    "p80.pool.sks-keyservers.net"
    "hkp://p80.pool.sks-keyservers.net:80"
    "pgp.mit.edu"
    "hkp://pgp.mit.edu:80"
)

keys=$(apt update 2>&1 | grep -o '[0-9A-Z]\{16\}$')

for key in $keys; do
    for server in "${keyservers[@]}"; do
        echo "Fetching GPG key ${key} from ${server}"
        gpg --keyserver $server --keyserver-options timeout=10 --recv-keys ${key}
        if [ $? -eq 0 ]; then
            echo "Key '${key}' successful added from server '${server}'"
            break
        else
            echo "Failed add key '${key}' from server '${server}'. Try another server"
            continue
        fi
    done
done

1
投票

这有助于我将密钥发送到 OSSRH 中央服务器支持的 3 个密钥服务器:

  • keyserver.ubuntu.com
  • keys.openpgp.org
  • pgp.mit.edu

0
投票

我发现我没有安装gnupg2。使用这个命令解决了我的问题

sudo apt install gnupg2
© www.soinside.com 2019 - 2024. All rights reserved.