Home
» LINUX
»
Come risolvere l'errore GPG "NO_PUBKEY" su Ubuntu
Come risolvere l'errore GPG "NO_PUBKEY" su Ubuntu
L' errore NO_PUBKEY significa che APT ha trovato un repository ma non può verificarne i metadati del pacchetto firmato perché non dispone della chiave pubblica di firma di tale repository. Identifica la sorgente, ottieni la sua chiave dall'editore, verifica l'impronta digitale completa e collegala solo a quel repository Signed-By. Quindi aggiorna APT. Non ignorare i controlli della firma per nascondere l'errore.
1. Identifica il repository che ha generato l'errore
Apri il Terminale ed esegui:
sudo apt update
Annota l'URL del repository accanto a NO_PUBKEY. APT potrebbe mostrare un ID chiave breve, come ABCD1234EF567890. Aiuta a identificare la chiave mancante, ma non dimostra chi ne è il proprietario. Conferma quale sorgente software ha generato l'errore prima di modificarne le impostazioni di attendibilità.
La riga evidenziata identifica un repository la cui chiave di firma non può essere verificata da APT; l'URL e l'ID della chiave sono esempi.
2. Ottieni e verifica la chiave dell'editore
Utilizza la pagina di installazione ufficiale del proprietario del repository o la posizione di download della chiave. Per un PPA di Launchpad, verifica il proprietario e l'archivio su Launchpad. La documentazione di Ubuntu sull'aggiunta di un PPA con add-apt-repository, che imposta la sua chiave:
sudo add-apt-repository ppa:OWNER/ARCHIVE
Sostituisci OWNER/ARCHIVEcon l'URL PPA esatto presente sulla pagina ufficiale. Per un repository di un fornitore, scarica la chiave solo seguendo le istruzioni del fornitore stesso. Questo esempio utilizza un URL segnaposto; sostituiscilo con l'URL pubblicato:
Confronta l'impronta digitale completa con quella pubblicata dal fornitore tramite un canale ufficiale. Non procedere se differisce o non può essere verificata.
Segui le istruzioni dell'editore per individuare la chiave e la sua impronta digitale.
3. Conservare la chiave nel suo portachiavi.
Per una chiave con codifica ASCII .asc, crea una directory per il portachiavi, converti la chiave e consenti ad APT di leggerla:
Se l'editore fornisce una .gpgchiave binaria, salvala /etc/apt/keyringse imposta i suoi permessi su 0644; non renderla inutilizzabile. Assegna al file il nome dell'editore in modo da poterlo identificare in seguito.
4. Collega la chiave a quel repository
Modifica il file sorgente esistente del repository, solitamente in /etc/apt/sources.list.d/. Mantieni l'URI, la suite Ubuntu e i componenti forniti dall'editore. Sostituisci i segnaposto qui sotto e non creare un file sorgente duplicato.
In un .sourcesfile deb822, aggiungi un Signed-Bycampo:
Types: deb
URIs: https://repo.example/ubuntu
Suites: YOUR_UBUNTU_CODENAME
Components: main
Signed-By: /etc/apt/keyrings/vendor-archive-keyring.gpg
In un .listfile legacy, aggiungi l'opzione alla debriga esistente:
deb [signed-by=/etc/apt/keyrings/vendor-archive-keyring.gpg] https://repo.example/ubuntu YOUR_UBUNTU_CODENAME main
Utilizza il formato già presente in quella sorgente. Il manuale di Ubuntusources.list spiega Signed-Byi formati supportati.
La voce sorgente punta a un portachiavi in /etc/apt/keyrings.
5. Aggiorna APT e verifica
Salva il file sorgente ed eseguilo:
sudo apt update
L'aggiornamento dovrebbe terminare senza NO_PUBKEYl'avviso di quel repository. A quel punto, puoi installare o aggiornare i pacchetti normalmente. Questo comando aggiorna i metadati dei pacchetti; non aggiorna i pacchetti già installati.
Un aggiornamento pulito dell'elenco dei pacchetti conferma che APT è in grado di verificare il repository configurato.
Se l'errore persiste
Impronta digitale non corrispondente: la chiave potrebbe essere obsoleta o provenire da un altro repository. Richiedi la chiave corrente al fornitore.
Chiave non trovata: verificare che il percorso di origine Signed-Bycorrisponda esattamente al file del portachiavi e che il file sia leggibile.
File di rilascio mancante o errore 404: il repository potrebbe non supportare il nome in codice della tua distribuzione Ubuntu. Segui le indicazioni di compatibilità del produttore o disabilita la sorgente; non tentare di utilizzare una suite diversa.
Archivio ufficiale di Ubuntu: verifica che la sorgente punti a un archivio ufficiale di Ubuntu e che quest'ultimo ubuntu-keyringsia integro. Non importare una chiave di licenza sostitutiva non ufficiale.
Su Ubuntu Desktop, se non utilizzi più una fonte di terze parti, apri Software e aggiornamenti , disabilitala in Altro software e ricarica le informazioni sui pacchetti. Le etichette variano a seconda della versione. Il vecchio flusso di lavoro di importazione dell'autenticazione globale non sostituisce la verifica della chiave corrente di un editore e l'utilizzo di Signed-By.
Mantieni attiva la verifica della firma
Non utilizzare le impostazioni trusted=yes, --allow-unauthenticated, o insecure-repository come soluzione alternativa. Se l'editore non può confermare la chiave o non gestisce più il repository, disabilitalo e utilizza una fonte supportata. Consulta il manuale di Ubuntu sull'autenticazione degli archivi APT .