没有公钥:无法找到ID:(XXXXX)的密钥(oss.sonatype.org)

时间:2013-10-19 05:12:51

标签: maven gnupg sonatype openpgp

我正在尝试将oss.sonatype.org上的暂存存储库推送到中央存储库,但此操作失败并且我正在跟踪异常

Event: Failed: Signature Validation
typeId  signature-staging
failureMessage  No public key: Key with id: (XXXXX) was not able to be located on http://keyserver.ubuntu.com:11371. Upload your public key and try the operation again.

我使用gbp为我生成公钥和私钥,我甚至使用以下命令将公钥发送到服务器

gpg --keyserver hkp://pool.sks-keyservers.net --send-keys EE539F98

我仍然得到相同的例外。我交叉检查并且只有一个Sub Key,不知道我还需要做什么才能推送公钥,以便nexus可以找到它

4 个答案:

答案 0 :(得分:31)

各种OpenPGP密钥服务器同步,但这需要一些时间。如果您知道将查询哪个密钥服务器,您可以直接在那里上传密钥。

我做了:

gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys EE539F98
gpg --keyserver hkp://keyserver.ubuntu.com --send-keys EE539F98

现在您的密钥可以在Ubuntu的密钥服务器上成功找到,而不必等到它自动同步。

实际上我多次运行recv-command来查找已经拥有密钥的池中的密钥服务器。

答案 1 :(得分:5)

我收到了错误消息:

  

没有公钥:ID为:(xxxx)的密钥无法访问   位于http://keyserver.ubuntu.com:port。上传您的公钥   并再次尝试操作。

然后我在控制台上输入以下命令:

gpg --keyserver hkp://keyserver.ubuntu.com --send-keys xxxx

(从主机名末尾删除:port) 它有效!

答案 2 :(得分:1)

同样的事情,事情是:

  • 上传从我的笔记本电脑生成的密钥完美无缺
  • 上传从应用程序服务器生成的密钥效率不高,我没有收到任何错误消息,但密钥从未分发过

也许我们的应用服务器阻止了这个请求,或者这个请求可能被Sonatype直接拒绝(如https://issues.sonatype.org/browse/OSSRH-6697中所述)

无论如何,我们找到了一个我想与你们分享的解决方法:

  • 在您的应用程序服务器上生成公钥
  

gpg --gen-key

  • 如果您已经在其中,请在本地文件夹中制作 pubring.gpg 文件的副本 /Users/you/.gnupg /
  • 在本地下载在您的应用程序服务器上生成的公钥 pubring.gpg (例如使用scp命令),它应位于 /home/username/.gnupg / 文件夹
  • 将其放入您的本地文件夹 /Users/you/.gnupg / 并发布此密钥
  

gpg2 --list-keys

     

gpg2 --keyserver hkp://pool.sks-keyservers.net   --send-keys KEYID

  • 密钥应该现在发布
  

gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys KEYID

请告诉我它是否有帮助!

此致

答案 3 :(得分:0)

gpg --keyserver hkp://keys.openpgp.org --send-keys your_public_key

然后我在 https://keys.openpgp.org/

找回了一封电子邮件并检查了这个密钥