Rapsberry Pi Logo

RPi Bookworm Apt Update fails due to missing public key

No Public Key Error

After upgrading the Raspberry Pi to Bookworm, I received the following errors as the apt tries to download updates from the debian bookworm source.

pi@raspberrypi:~/tmp $ sudo apt update

Get:1 http://security.debian.org/debian-security bookworm-security InRelease [48.0 kB]

Get:2 http://deb.debian.org/debian bookworm InRelease [151 kB]

Get:3 http://deb.debian.org/debian bookworm-updates InRelease [52.1 kB]

Hit:4 http://archive.raspberrypi.org/debian bookworm InRelease

Hit:5 https://download.docker.com/linux/raspbian bookworm InRelease

Hit:6 http://packages.azlux.fr/debian bookworm InRelease

Err:1 http://security.debian.org/debian-security bookworm-security InRelease

The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 54404762BBB6E853 NO_PUBKEY BDE6D2B9216EC7A8

Err:2 http://deb.debian.org/debian bookworm InRelease

The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0E98404D386FA1D9 NO_PUBKEY 6ED0E7B82643E131 NO_PUBKEY F8D2585B8783D481

Err:3 http://deb.debian.org/debian bookworm-updates InRelease

The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0E98404D386FA1D9 NO_PUBKEY 6ED0E7B82643E131

Reading package lists... Done

W: GPG error: http://security.debian.org/debian-security bookworm-security InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 54404762BBB6E853 NO_PUBKEY BDE6D2B9216EC7A8

E: The repository 'http://security.debian.org/debian-security bookworm-security InRelease' is not signed.

N: Updating from such a repository can't be done securely, and is therefore disabled by default.

N: See apt-secure(8) manpage for repository creation and user configuration details.

W: GPG error: http://deb.debian.org/debian bookworm InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0E98404D386FA1D9 NO_PUBKEY 6ED0E7B82643E131 NO_PUBKEY F8D2585B8783D481

E: The repository 'http://deb.debian.org/debian bookworm InRelease' is not signed.

N: Updating from such a repository can't be done securely, and is therefore disabled by default.

N: See apt-secure(8) manpage for repository creation and user configuration details.

W: GPG error: http://deb.debian.org/debian bookworm-updates InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0E98404D386FA1D9 NO_PUBKEY 6ED0E7B82643E131

E: The repository 'http://deb.debian.org/debian bookworm-updates InRelease' is not signed.

N: Updating from such a repository can't be done securely, and is therefore disabled by default.

N: See apt-secure(8) manpage for repository creation and user configuration details.

W: http://archive.raspberrypi.org/debian/dists/bookworm/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

W: http://packages.azlux.fr/debian/dists/bookworm/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.


Solution

Import each missing key manually using the apt-key. The only issue is, the apt-key application is deprecated.

Example:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 54404762BBB6E853

Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).

Executing: /tmp/apt-key-gpghome.XOukQDzfAo/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 54404762BBB6E853

gpg: key A48449044AAD5C5D: public key "Debian Security Archive Automatic Signing Key (11/bullseye) <ftpmaster@debian.org>" imported

gpg: Total number processed: 1

gpg: imported: 1


New Warnings

So you will still get warnings when running apt update.

pi@raspberrypi:~/tmp $ sudo apt update

Hit:1 http://deb.debian.org/debian bookworm InRelease

Hit:2 http://deb.debian.org/debian bookworm-updates InRelease

Hit:3 http://security.debian.org/debian-security bookworm-security InRelease

Hit:4 https://download.docker.com/linux/raspbian bookworm InRelease

Hit:5 http://archive.raspberrypi.org/debian bookworm InRelease

Hit:6 http://packages.azlux.fr/debian bookworm InRelease

Reading package lists... Done

Building dependency tree... Done

Reading state information... Done

553 packages can be upgraded. Run 'apt list --upgradable' to see them.

W: http://deb.debian.org/debian/dists/bookworm/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

W: http://deb.debian.org/debian/dists/bookworm-updates/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

W: http://security.debian.org/debian-security/dists/bookworm-security/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

W: http://archive.raspberrypi.org/debian/dists/bookworm/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

W: http://packages.azlux.fr/debian/dists/bookworm/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.


Fixing the Warnings

The quick and dirty fix is to simply copy the keys to the new folder.

cd /etc/apt

sudo cp trusted.gpg trusted.gpg.d

pi@raspberrypi:/etc/apt $ sudo apt update

Hit:1 http://deb.debian.org/debian bookworm InRelease

Hit:2 http://security.debian.org/debian-security bookworm-security InRelease

Hit:3 http://deb.debian.org/debian bookworm-updates InRelease

Hit:4 https://download.docker.com/linux/raspbian bookworm InRelease

Hit:5 http://archive.raspberrypi.org/debian bookworm InRelease

Hit:6 http://packages.azlux.fr/debian bookworm InRelease

Reading package lists... Done

Building dependency tree... Done

Reading state information... Done

553 packages can be upgraded. Run 'apt list --upgradable' to see them.