The following signatures couldn't be verified because the public key is not available: NO_PUBKEY
apt can’t verify a repository’s signature because the repo’s signing key isn’t installed (or has expired/rotated).
Seen on:
Linux
Meaning
Third-party repos (Docker, Node, Google Chrome, PostgreSQL) sign their indexes. Their key must be in /etc/apt/keyrings and referenced with signed-by in the source entry. apt-key is deprecated, and old keys get rotated.
Common causes
- Repo added without importing its key
- Key rotated by the vendor
- Using deprecated apt-key with a keyring apt doesn’t read
- signed-by path wrong
⚡ Quick fix
- Download the vendor’s current key into /etc/apt/keyrings
- Reference it with signed-by in the .list/.sources file
- Remove the repo if you no longer need it
Detailed fix by platform
Ubuntu
- bash
sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list sudo apt update
How to diagnose
- Repo — Which source fails?
- Key — Present in /etc/apt/keyrings and signed-by correct?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- 1005 Cloudflare Error 1005: Access denied — The owner of this website has banned the autonomous system number (ASN) your IP address is in
- 1006 Cloudflare Error 1006 / 1007 / 1008: Access denied — Your IP address has been banned
- 403 Forbidden wp-admin WordPress: 403 Forbidden on wp-admin, wp-login.php or admin-ajax.php
Most viewed in Linux
Other ways to find it
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 7 Oct 2026