NO_PUBKEY error occurs when Debian’s APT package manager cannot verify the digital cryptographic signature of a third-party repository. To resolve it permanently without using the deprecated apt-key utility, fetch the missing public key using gpg --keyserver and export it into a standalone keyring file located inside /etc/apt/keyrings/ or /etc/apt/trusted.gpg.d/.
When maintaining Linux servers running Debian 11 (Bullseye) or Debian 12 (Bookworm), executing sudo apt update occasionally halts with a cryptographic signature verification failure. The terminal outputs an error resembling The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0E98404D38ACD4F0. This comprehensive guide details why this happens and provides the modern, secure resolution.
1. Root Cause Analysis: Why APT Demands GPG Keys
Debian employs GPG (GNU Privacy Guard) signatures to guarantee that packages downloaded across public networks have not been tampered with or corrupted by man-in-the-middle (MITM) attacks. Each repository owner signs their Release index with a private key; your server must possess the matching public key to validate packages.
| Component | Old Method (Deprecated) | Modern Method (Debian 12+) |
|---|---|---|
| Keyring Storage | /etc/apt/trusted.gpg (Global) |
/etc/apt/keyrings/<repo>.gpg (Scoped) |
| Key Management CLI | apt-key add |
gpg --dearmor / tee |
| Security Boundary | Any key can sign any package | Keys strictly scoped via [signed-by=...] |
2. Step-by-Step Resolution: Importing Missing GPG Key
- Step 1: Identify the Missing Key Hex: Examine your terminal output for the 16-character hex string immediately following
NO_PUBKEY(e.g.,0E98404D38ACD4F0). - Step 2: Ensure Dedicated Keyrings Directory Exists: Execute the command below to guarantee proper directory permissions:
sudo mkdir -p -m 755 /etc/apt/keyrings - Step 3: Retrieve and De-Armor the Public Key: Replace
MISSING_KEY_HEREwith your actual key hex string:sudo gpg --no-default-keyring --keyring /etc/apt/trusted.gpg.d/debian-fix.gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys MISSING_KEY_HERE - Step 4: Update APT Cache: Refresh your package indexes:
sudo apt update
[trusted=yes] in your sources.list. While this bypasses the error, it opens your production servers to malicious remote package injection. Always import the authentic public key.
Frequently Asked Questions about GPG Key Errors
Why is apt-key deprecated in newer Debian releases?
In legacy setups, apt-key add deposited keys into a shared global keyring. This allowed any third-party repository’s key to authenticate packages from any other repository. Modern Debian restricts each key strictly to its designated repository through the signed-by directive.
Can firewall rules block keyserver port 11371?
Yes. Legacy keyservers utilized HKP over port 11371, which many corporate firewalls block. Always specify hkps://keyserver.ubuntu.com which communicates over standard HTTPS port 443.
Conclusion
Resolving APT GPG signature verification errors is straightforward once you understand modern keyring isolation. By maintaining distinct keyring files inside /etc/apt/keyrings/ or /etc/apt/trusted.gpg.d/, your Debian servers remain both secure and automated.


![Otomasi Administrasi Kelas: Integrasi Spreadsheet AI dan Template Digital untuk Rekap Nilai Siswa Zero-Stress [Seri AI_EDUKASI #3]](https://www.edusoe.my.id/wp-content/uploads/2026/10/blog_featured_1793422858-150x150.jpg)