176

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 <[email protected]>

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?

4
  • 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 4, 2012 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 4, 2012 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. Jun 23, 2020 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: forum.hestiacp.com/t/… Aug 30, 2021 at 21:11

9 Answers 9

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.

6
  • 3
    Hi@anwar where/how do i get the key that i trust? Oct 29, 2018 at 14:30
  • 3
    @MinnieShi The key is present in the error message itself The following signatures were invalid: BADSIG 16126D3A3E5C1192 May 6, 2019 at 17:35
  • 3
    Note that the apt-key add command should return "OK".
    – COil
    Jun 1, 2019 at 9:48
  • 1
    Great, should be the accepted answer! Thanks.
    – Jacob
    Aug 19, 2019 at 10:17
  • I get this after the gpg --export, and it still fails with apt, any advice pls?: gpg: WARNING: unsafe ownership on homedir '/home/abc/.gnupg'; OK
    – alchemy
    Mar 12, 2020 at 22:47
32

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
4
  • This works perfectly and looks safe. Thanks.
    – Dan Ortega
    Mar 24, 2021 at 14:10
  • 4
    This should be the choosen answer!
    – Roger
    Jul 19, 2021 at 15:19
  • 1
    This worked for me where not of the other answers worked. Using Ubuntu16.04 Xenial in a docker Aug 15, 2021 at 12:03
  • 2
    Agreed. This feels a lot better to execute (and worked), thank you.
    – mgarde
    Oct 9, 2021 at 19:48
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. :)

2
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.

1
  • also you most likely free some space in ubuntu before trying to run any further command like apt update Jul 30, 2022 at 11:30
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!

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/

1
  • This worked perfectly for me. Thanks Jul 7, 2023 at 13:03
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

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
-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
0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .