Maven 没有公钥:找不到id为:(XXXXX)的密钥(oss.sonatype.org)

Maven 没有公钥:找不到id为:(XXXXX)的密钥(oss.sonatype.org),maven,gnupg,sonatype,openpgp,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 k

我试图将
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

不过我还是遇到了同样的异常。我反复检查了一下,发现只有一个子键,不确定我还需要做些什么来推送公钥,以便nexus可以找到它。各种OpenPGP密钥服务器同步,但这需要一些时间。如果您知道将查询哪个密钥服务器,您可以直接将密钥上载到那里

我做到了:

gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys EE539F98
gpg --keyserver hkp://keyserver.ubuntu.com --send-keys EE539F98
现在,您的密钥可以在Ubuntu的密钥服务器上成功找到,而无需等待它自动同步


实际上,我多次运行recv命令以在他们的池中找到一个已经有您的密钥的密钥服务器。

我收到了错误消息:

没有公钥:无法使用id为xxxx的密钥 位于。上传你的公钥 然后重试该操作

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

gpg --keyserver hkp://keyserver.ubuntu.com --send-keys xxxx
(从主机名末尾删除:端口)
它起作用了

同样的事情,事情是:

  • 上传从我的笔记本电脑生成的密钥非常有效
  • 上传应用服务器生成的密钥效率不高,我没有收到任何错误消息,但从未分发过密钥
可能我们的应用服务器阻止了这个请求,或者这个请求被Sonatype直接拒绝(如中所述)

无论如何,我们找到了一个解决办法,我想和大家分享:

  • 在应用服务器上生成公钥
gpg—gen密钥

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

gpg2——密钥服务器hkp://pool.sks-keyservers.net --发送密钥密钥ID

  • 密钥现在应该已经发布了
gpg——密钥服务器hkp://pool.sks-keyservers.net --recv keys KEYID

如果有帮助,请告诉我

问候

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

然后我收到了一封电子邮件,在

上检查了这把钥匙,谢谢Jens:),我有点匆忙;)嗯,我想知道为什么在发送密钥之前必须运行
--recv-keys
?如果你的计算机上有密钥,就没有必要
recv
它--因为我的机器上还没有那把密钥,我必须在再次上传它之前取出它。