How to Fix “NO_PUBKEY” Errors and Securely Install debian-archive-keyring in Debian


2 views

When working with older Debian systems, you might encounter this frustrating situation:

# apt-get update
[...]
W: GPG error: http://backports.debian.org lenny-backports Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AED4B06F473041FA
W: GPG error: http://http.us.debian.org stable Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AED4B06F473041FA

Naturally, you'd try to install the keyring package, only to hit another wall:

# apt-get install debian-archive-keyring
WARNING: The following packages cannot be authenticated!
    debian-archive-keyring

The root issue stems from expired or missing GPG keys in older Debian releases. Here are three practical ways to resolve this:

Method 1: Manual Key Installation

Download the key manually from a trusted source:

# gpg --keyserver keyring.debian.org --recv-key AED4B06F473041FA
# gpg --export --armor AED4B06F473041FA | sudo apt-key add -
# apt-get update

Method 2: Temporary Disable Verification

As a last resort (not recommended for production systems):

# apt-get -o Acquire::AllowInsecureRepositories=true update
# apt-get -o APT::Get::AllowUnauthenticated=true install debian-archive-keyring
# apt-get update

Method 3: Using HTTPS Sources

Update your sources.list to use HTTPS mirrors:

deb https://deb.debian.org/debian/ lenny main contrib non-free
deb https://security.debian.org/debian-security lenny/updates main contrib non-free

After applying any of these methods, verify the fix with:

# apt-key list
# apt-get update

Consider these best practices:

# Install the keyring package from stable
sudo apt-get install debian-archive-keyring --target-release stable

# Regular maintenance
sudo apt-key update
sudo apt-get update

Remember that older Debian versions like Lenny have reached EOL, and upgrading to a supported release is strongly recommended for security reasons.


When running apt-get update on older Debian systems (especially Lenny or Stable), you might encounter GPG errors like:

W: GPG error: http://backports.debian.org lenny-backports Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AED4B06F473041FA

This occurs when the repository begins using a new signing key that isn't in your local keyring. The proper solution is to install/upgrade the debian-archive-keyring package - but this creates a chicken-and-egg problem since APT won't install unsigned packages without an updated keyring.

Here's how to securely bootstrap the process:

# First method: Manual key installation
gpg --keyserver pgp.mit.edu --recv-keys AED4B06F473041FA
gpg --export AED4B06F473041FA | sudo apt-key add -

# Alternative method: Download keyring manually
wget http://ftp.debian.org/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2021.1.1_all.deb
sudo dpkg -i debian-archive-keyring_2021.1.1_all.deb

After applying either method:

sudo apt-get update
sudo apt-get install --reinstall debian-archive-keyring

The warnings should disappear. For extra security, verify the package checksum against Debian's official records:

apt-get download debian-archive-keyring
sha256sum debian-archive-keyring_*.deb

Consider these repository best practices:

# Example modern sources.list for Debian Stable
deb https://deb.debian.org/debian stable main contrib non-free
deb https://deb.debian.org/debian-security stable/updates main contrib non-free
deb https://deb.debian.org/debian stable-updates main contrib non-free

Using HTTPS endpoints and keeping your system updated prevents most key rotation issues.