How do I fix the GPG error "NO_PUBKEY"?
Solution 1:
Execute the following commands in terminal
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <PUBKEY>
where <PUBKEY>
is your missing public key for repository, e.g. 8BAF9A6F
.
Then update
sudo apt-get update
ALTERNATE METHOD:
sudo gpg --keyserver pgpkeys.mit.edu --recv-key <PUBKEY>
sudo gpg -a --export <PUBKEY> | sudo apt-key add -
sudo apt-get update
Note that when you import a key like this using apt-key
you are telling the system that you trust the key you're importing to sign software your system will be using. Do not do this unless you're sure the key is really the key of the package distributor.
Solution 2:
By far the simplest way to handle this now is with Y-PPA-Manager (which now integrates the launchpad-getkeys
script with a graphical interface).
-
To install it, first add the webupd8 repository for this program:
sudo add-apt-repository ppa:webupd8team/y-ppa-manager
-
Update your software list and install Y-PPA-Manager:
sudo apt-get update sudo apt-get install y-ppa-manager
-
Run y-ppa-manager (i.e. type
y-ppa-manager
then press enter key). -
When the main y-ppa-manager window appears, click on "Advanced."
-
From the list of advanced tasks, select "Try to import all missing GPG keys" and click OK.
You're done! As the warning dialog says when you start the operation, it may take quite a while (about 2 minutes for me) depending on how many PPA's you have and the speed of your connection.
Solution 3:
It happens when you don't have a suitable public key for a repository.
To solve this problem use this command:
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 9BDB3D89CE49EC21
which retrieves the key from ubuntu key server. And then this:
gpg --export --armor 9BDB3D89CE49EC21 | sudo apt-key add -
which adds the key to apt trusted keys.
The solution can be found here & here & here.