No public key: Key with id: (XXXXX) was not able to be located (oss.sonatype.org)

MavenGnupgSonatypeOpenpgp

Maven Problem Overview


I am trying to push my staging repository on oss.sonatype.org to central repository, but this action is getting failed and i am getting following exception

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.

I used gbp to generate public and well private key for me and i even sent public key to the server with following command

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

Still i am getting same exception.I cross checked and there is only one Sub Key, not sure what else i need to do to push public key so as this can be found by nexus

Maven Solutions


Solution 1 - Maven

The various OpenPGP keyserver synchronize, but that takes some time. If you know which keyserver will be queried, you can directly upload your key there.

I did:

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

and now your key can successfully be found on Ubuntu's keyserver, without having to wait until it automatically synchronized.

Actually I ran the recv-command multiple times to find a keyserver in their pool which already had your key.

Solution 2 - Maven

I got the error message:

> No public key: Key with id: (xxxx) was not able to be > located on http://keyserver.ubuntu.com:port. Upload your public key > and try the operation again.

Then i entered the following command on console:

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

(removed the :port from the end of the hostname) It works!

Solution 3 - Maven

Same thing here, the thing was :

  • uploading the key generated from my laptop works perfectly
  • uploading the key generated from the application server was not efficient, I did not get any error message but the key was never distributed

Maybe our application server was blocking this request, or maybe this one was rejected directly by Sonatype (like explained in https://issues.sonatype.org/browse/OSSRH-6697)

Anyway we found a workaround that I wanted to share with you guys :

  • generate the public key on your application server

> gpg --gen-key

  • if you have already one, make a copy of pubring.gpg file in your local folder /Users/you/.gnupg/
  • download locally the public key pubring.gpg generated on your application server (using scp command for example), it should be located in the /home/username/.gnupg/ folder on your application server
  • put it in your local folder /Users/you/.gnupg/ and publish this key

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

  • the key should be published by now

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

Please let me know if it helps!

Regards

Solution 4 - Maven

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

I then retrived an email and cheked this key at https://keys.openpgp.org/

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionUmesh AwasthiView Question on Stackoverflow
Solution 1 - MavenJens EratView Answer on Stackoverflow
Solution 2 - Mavenzhiyong zhuView Answer on Stackoverflow
Solution 3 - MavenlboixView Answer on Stackoverflow
Solution 4 - MavenKirilo LozitskyView Answer on Stackoverflow