178

I ran this command in the Terminal:

sudo apt-get update

Updating ends with the following error report:

W: A error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://extras.ubuntu.com precise Release: The following signatures were invalid: BADSIG 16126D3A3E5C1192 Ubuntu Extras Archive Automatic Signing Key <ftpmaster@ubuntu.com>

W: GPG error: http://ppa.launchpad.net precise Release: The following signatures were invalid: BADSIG 4C1CBC1B69B0E2F4 Launchpad PPA for Jonathan French
W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/precise/Release  

What does this mean and why is it happening?

Artur Meinild
  • 26,018
beeju
  • 2,973
  • 4
  • 19
  • 22
  • 4
    I saw similar issue when I first installed the 12.04. After that I changed the "Software Sources" from the software manager from India to another server. Now I am not seeing this issue. If you are using India server, change it and let us know. – Abhijeet May 04 '12 at 18:11
  • Thanx Abhijeet. I am an Indian but staying here in Qatar.I changed server to Saudi Arabia.But same result. – beeju May 04 '12 at 18:19
  • For myself, I had a PPA in /etc/apt/sources.list.d/ that no longer existed and so this error was coming up. I had to remove that (actually, replace it with an updated repo for ffmpeg that I needed) and then sudo apt-get update worked just fine. – Joshua Pinter Jun 23 '20 at 15:23
  • 1
    Because of low reputation, I can only comment. I solved the issue using the following command: apt-key adv --fetch-keys 'https://packages.sury.org/php/apt.gpg' > /dev/null 2>&1 Source: https://forum.hestiacp.com/t/apt-upgrade-failed-gpg-error-packages-sury-org/1920/8 – Ladislav Ondris Aug 30 '21 at 21:11

9 Answers9

130

This message is displaying because the gpg key for that repository is missing in your apt-key database.

To import the key, open a terminal and enter these commands

gpg --keyserver keyserver.ubuntu.com --recv-keys 16126D3A3E5C1192 

pgp keys are mostly distributed in several keystore. Ubuntu related keys are usually found in keyserver.ubuntu.com. But if that fails you can use alternatives. Like -

gpg --keyserver hkp://subkeys.pgp.net --recv-keys 16126D3A3E5C1192

You must replace the alphanumeric part, with the specific key. Make sure the key is one you trust. Any repository with this key, would be able to install any package without warning.

You would see the following output if the above is successful

gpg: Total number processed: 1
gpg:               imported: 1

Then run this command:

gpg --export --armor 16126D3A3E5C1192 | sudo apt-key add - 

Note the - sign after add.

Then sudo apt-get update, you will have no such messages after this.

Anwar
  • 76,649
34

I ran into this issue an older Ubuntu 16.04 box. My keys weren't expired so I wasn't really sure why I was getting the error. I tried SirCharlo's method but I still got the same errors. Being this particular error is coming from the 'Ubuntu Extras Archive Automatic Signing Key' I decided to refresh my keys. After doing that everything worked fine. Not sure if it was a combination of both method's but if SirCharlo's method doesn't work, run this command:

apt-key adv --refresh-keys --keyserver keyserver.ubuntu.com
G_Style
  • 613
17

You can try my script to automatically receive all GPG keys for PPAs you use: smartupdate.sh.

It will launch apt-get update, then find all GPG errors and receive keys for found GPG signatures. In your case, it will just launch

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4C1CBC1B69B0E2F4

but when you add a few unsigned PPAs, it becomes boring to add GPG keys manually. :)

7

As 131 suggested in a comment in a now deleted answer, do it this way:

  1. First clean things up:

    sudo apt-get clean
    
  2. Optional step to save a backup and also preserve the ownership of lists:

    sudo cp -a /var/lib/apt/lists /tmp
    sudo rm -r /var/lib/apt/lists/*
    
  3. Then rebuild the package list:

    sudo apt update
    

NOTE

The following were suggested in a highly upvoted answer that is now deleted:

sudo apt-get clean
sudo mv /var/lib/apt/lists /tmp
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get clean
sudo apt-get update

This was not good advice because the mv and mkdir here create a new problem: lists is no longer owned by _apt. This means you'll now get this new apt warning:

W: Download is performed unsandboxed...

You need to preserve the existing ownership and permissions of the lists folder.

6

I got a similar error. But instead of BADSIG I got KEYEXPIRED for the PostgreSQL repo:

W: A error occurred during the signature verification.
  The repository is not updated and the previous index files will be used.
  GPG error: http://apt.postgresql.org precise-pgdg Release:
  The following signatures were invalid: KEYEXPIRED 1381654177

The solution is perfectly described here but this is what I did to solve it:

$ sudo apt-key list | grep -B1 PostgreSQL
$ sudo apt-key del ACCC4CF8
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

And now $ sudo apt-get update will work perfectly!

UlfR
  • 231
3

I got quite similar error (on Debian 10):

W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. 
GPG error: http://repo.mysql.com/apt/debian buster InRelease: The following signatures couldn't be verified because the public key is not available: 
NO_PUBKEY 467B942D3A79BD29

W: Failed to fetch http://repo.mysql.com/apt/debian/dists/buster/InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29

The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29

You can add the unavailable key and try again. In this my case the unavailable key is 467B942D3A79BD29

So, key adding command will be sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29

That solved my problem and sudo apt update fired like a charm.

Solution source: https://docs.mideye.se/5.6.6/installation/debian10/

Sid
  • 151
1

This could be due to a caching issue of a HTTP proxy. If you have one of those somewhere along the route like me, you can run apt and circumvent the cache temporarily:

sudo apt-get update -o Acquire::http::No-Cache=True
Teocci
  • 4,665
1

This tip (from actionparsnip) worked for me:

Try:

sudo fuser -vvv /var/lib/dpkg/lock
sudo rm /var/lib/apt/lists/lock
sudo cp -arf /var/lib/dpkg /var/lib/dpkg.backup
sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status
sudo cp /var/lib/dpkg/available-old /var/lib/dpkg/available
sudo rm -rf /var/lib/dpkg/updates/*
sudo rm -rf /var/lib/apt/lists
sudo rm /var/cache/apt/*.bin
sudo mkdir /var/lib/apt/lists
sudo mkdir /var/lib/apt/lists/partial
LANG=C;sudo apt-get clean
LANG=C;sudo apt-get autoclean
LANG=C;sudo apt-get --purge autoremove
LANG=C;sudo apt-get update -o APT::Cache-Limit=25165824
sudo dpkg --clear-avail
sudo dpkg --configure -a
LANG=C;sudo apt-get -f install
LANG=C;sudo apt-get --fix-missing install
LANG=C;sudo apt-get update -o APT::Cache-Limit=25165824 && sudo apt-get dist-upgrade

Found in:
https://answers.launchpad.net/ubuntu/+source/update-manager/+question/194077

Eliah Kagan
  • 117,780
ebasconp
  • 119
-2

You can use launchpad-getkeys to fix this. Open a terminal and enter:

sudo apt-get install launchpad-getkeys
sudo launchpad-getkeys

Then

sudo apt-get update
nastys
  • 5,427
  • 3
  • 20
  • 28