GNU/Linux >> Linux Esercitazione >  >> Debian

Correggi gli errori del repository apt della chiave GPG mancante (NO_PUBKEY)

Potresti visualizzare un errore con la chiave pubblica GPG mancante ("NO_PUBKEY") durante l'esecuzione su Debian, Ubuntu o Linux Mint apt update / apt-get update . Questo può accadere se aggiungi un repository e dimentichi di aggiungere la sua chiave pubblica, o se si è verificato un errore temporaneo del server delle chiavi durante il tentativo di importare la chiave GPG.

Quando si esegue un apt update / apt-get update o provando ad aggiornare le sorgenti software utilizzando uno strumento GUI, apt si lamenta del fatto che non tutti gli indici dei repository possono essere scaricati e visualizza errori come questi:

W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://ppa.launchpad.net/linuxuprising/apps/ubuntu bionic InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY EA8CACC073C3DB2A
W: Failed to fetch https://ppa.launchpad.net/linuxuprising/apps/ubuntu/dists/bionic/InRelease  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY EA8CACC073C3DB2A
W: Some index files failed to download. They have been ignored, or old ones used instead.

Questo è solo un esempio. Questo errore può apparire non solo con i repository PPA di Launchpad, ma con qualsiasi repository fornito da Google, Vivaldi o Node.js ecc.

Il messaggio di errore indica che il repository non verrà aggiornato e verranno utilizzati i file di indice precedenti. Ciò significa che non riceverai aggiornamenti da questo repository, quindi dovresti importare la chiave pubblica GPG per risolvere questo problema.

Come risolverlo molto facilmente The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ... Errore. Dovrebbe funzionare su Debian, Ubuntu, Linux Mint, Pop! _OS, SO elementare e qualsiasi altra distribuzione Linux basata su Debian o Ubuntu.

Soluzione 1:correzione rapida di NO_PUBKEY per un singolo repository/chiave.

Se ti manca solo una chiave del repository pubblico GPG, puoi eseguire questo comando sul tuo Ubuntu / Linux Mint / Pop! _OS / sistema Debian per risolvere il problema:

sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys THE_MISSING_KEY_HERE

Devi sostituire THE_MISSING_KEY_HERE con la chiave GPG mancante. La chiave viene visualizzata nel registro apt update / apt-get update dietro NO_PUBKEY. Ad esempio, nel messaggio di errore pubblicato sopra, la chiave GPG mancante da utilizzare in questo comando è:EA8CACC073C3DB2A .

Vedi anche:Come correggere l'errore "Impossibile ottenere lock / var / lib / dpkg / lock – open (11 risorsa temporaneamente non disponibile)"

Soluzione 2:importazione in batch di tutte le chiavi GPG mancanti.

Se perdi diverse chiavi pubbliche OpenPGP, puoi importarle tutte in una volta con questo one-liner:

sudo apt update 2>&1 1>/dev/null | sed -ne 's/.*NO_PUBKEY //p' | while read key; do if ! [[ ${keys[*]} =~ "$key" ]]; then sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys "$key"; keys+=("$key"); fi; done


Non è necessario modificare nessuna parte del comando, basta eseguirlo così com'è. Funziona anche per correggere una singola chiave GPG mancante, ma è alquanto ridondante. Tuttavia, funziona con qualsiasi numero di chiavi GPG mancanti.

Il comando sta eseguendo sudo apt update per aggiornare le fonti del software e rilevare chiavi GPG mancanti e importare qualsiasi chiave mancante hkp://pool.sks-keyservers.net:80 come suo server. Questo server è costantemente sincronizzato con molti altri server, quindi dovrebbe avere chiavi aggiornate. Puoi utilizzare un server diverso se lo desideri.

Il comando utilizza anche un array per memorizzare le chiavi GPG mancanti per le quali abbiamo già importato la chiave. In caso contrario, il comando di importazione della chiave verrebbe eseguito due volte per ogni chiave mancante.

Potrebbe interessarti anche:Come creare (e pubblicare) una chiave PGP su Linux usando una GUI


Debian
  1. Debian – Impossibile aggiungere la chiave Gpg con la chiave Apt dietro un proxy?

  2. Ubuntu – Keyexpired su Opensuse Repository?

  3. Debian – Perché le chiavi Gpg di Fedora non sono firmate?

  4. gpg:comando non trovato

  5. apt-key non è aggiornato. Come aggiungere chiavi di firma del repository OpenPGP senza di esse su Debian, Ubuntu, Linux Mint, Pop! _OS, ecc.

Come aggiungere un repository Apt in Ubuntu

Come configurare il server di repository APT locale su Ubuntu 20.04

Come eliminare un repository e una chiave GPG in Ubuntu

Come risolvere l'errore "Impossibile verificare le seguenti firme" in Ubuntu Linux

Come risolvere l'errore Apt-Get GPG NO_PUBKEY Ubuntu 14

Come correggere l'icona del vassoio Dropbox mancante?