Home
» Come fare
»
Risolvi gli errori di firma APT riparando la chiave del repository.
Risolvi gli errori di firma APT riparando la chiave del repository.
Se APT segnala "Impossibile verificare le seguenti firme", identifica il repository e il codice di errore specifico nello stesso output, quindi ripara la chiave di firma attendibile o la voce di origine di quel repository. Per un repository di terze parti, ottieni la chiave corrente dal produttore del software e associala a tale origine con Signed-By; non disabilitare i controlli della firma né aggiungere una chiave sconosciuta a livello globale.
Esempio di output di apt update: un errore di chiave mancante specifica il repository interessato e include un identificatore NO_PUBKEY.
1. Trova il repository e leggi l'errore esatto
Esegui un aggiornamento per poter esaminare il messaggio completo:
sudo apt update
Cerca l'URL accanto Err:e un token come NO_PUBKEY, EXPKEYSIG, KEYEXPIRED, o BADSIG. L'URL ti indica quale sorgente ha fallito; il token restringe il campo per capire il motivo. APT verifica i metadati del repository firmati prima di considerare attendibile l'indice dei pacchetti, quindi un controllo della firma fallito è un segnale di sicurezza piuttosto che un avviso puramente estetico. Le installazioni di Ubuntu includono già le chiavi per gli archivi Ubuntu predefiniti; la configurazione manuale delle chiavi è normalmente necessaria solo per i repository aggiunti in seguito.
Trova la definizione della sorgente cercando l'host indicato nell'errore. Sostituisci l'host di esempio con quello visualizzato nel tuo terminale:
Cerca nella directory sorgente APT l'host esatto segnalato dall'aggiornamento non riuscito.
Ubuntu 24.04 e versioni successive utilizzano per impostazione predefinita file sorgente deb822 con estensione .deb; le installazioni più vecchie spesso hanno file .sourcescon estensione .deb822 . Controlla l'URL del repository, il nome in codice della suite o di Ubuntu e qualsiasi voce esistente. Se il codice sorgente punta a una versione non più supportata dal fornitore, segui le istruzioni del fornitore per la tua versione di Ubuntu o disabilita quel codice sorgente. Una chiave non può correggere un percorso del repository obsoleto o errato..listSigned-By
2. Riparare una chiave di terze parti mancante o ruotata
Innanzitutto NO_PUBKEY, verifica che il repository sia uno di quelli che hai installato intenzionalmente. Apri la documentazione di installazione corrente del produttore e ottieni l'URL della chiave di firma e l'impronta digitale completa da quella fonte. Confronta l'impronta digitale con un riferimento del fornitore pubblicato separatamente, se disponibile. Non scaricare una chiave da un server di chiavi casuale solo perché il suo ID breve corrisponde all'errore.
Per un fornitore che pubblica una chiave in formato ASCII .asc, installala come portachiavi APT dedicato. Sostituisci l'URL di esempio con l'URL esatto documentato da tale fornitore:
Il .gpgfile deve essere leggibile dall'utente di download non privilegiato di APT. Se l'editore fornisce un .gpgportachiavi binario, segui le sue istruzioni invece di rimuoverlo nuovamente. Ubuntu raccomanda che le chiavi di terze parti risiedano in un portachiavi separato e che siano referenziate da tale repository, limitando le fonti che possono utilizzare la chiave.
Un'impostazione Signed-By specifica per la fonte mantiene il repository collegato al proprio portachiavi.
Modifica la definizione di origine esistente anziché aggiungere una voce duplicata. Per un file deb822 come /etc/apt/sources.list.d/vendor.sources, utilizza i valori effettivi di URI, suite e componente del fornitore, quindi aggiungi il percorso del portachiavi:
Types: deb
URIs: https://packages.example.org/ubuntu
Suites: YOUR_UBUNTU_CODENAME
Components: main
Signed-By: /etc/apt/keyrings/vendor-archive.gpg
Se la voce esistente si trova in un file di una sola riga .list, la sintassi equivalente è deb [signed-by=/etc/apt/keyrings/vendor-archive.gpg] https://packages.example.org/ubuntu YOUR_UBUNTU_CODENAME main. Preservare la suite e i componenti documentati del repository; i valori di esempio sono segnaposto. Evitare apt-key add: è deprecato e una chiave globale attendibile può concedere a una chiave di terze parti un'autorità più ampia di quella prevista.
Se il messaggio indica EXPKEYSIGo KEYEXPIRED, la chiave di firma potrebbe essere scaduta o il fornitore potrebbe averla sostituita. Scarica e verifica la chiave sostitutiva seguendo le istruzioni correnti del fornitore, quindi aggiorna il portachiavi della sorgente. Non estendere la validità della vecchia chiave ignorandone la scadenza.
3. Verificare l'orologio, l'archivio di Ubuntu e i problemi relativi ai mirror.
Se il repository è un archivio ufficiale di Ubuntu, non importare una chiave di terze parti. Verifica che l'orologio di sistema sia corretto con timedatectl statuse conferma che la sorgente utilizzi un URL di archivio Ubuntu valido e il nome in codice della versione installata. Il ubuntu-keyringpacchetto fornisce le chiavi di firma dell'archivio Ubuntu; se la gestione dei pacchetti funziona ancora tramite una sorgente Ubuntu attendibile, aggiorna quel pacchetto con:
sudo apt install --reinstall ubuntu-keyring
Un BADSIGmessaggio indica che la firma non corrisponde ai metadati ricevuti da APT. Ripetere l'importazione di una chiave è solitamente la soluzione sbagliata. Verifica la presenza di un orologio di sistema errato, di un mirror obsoleto o incoerente, di un proxy di caching o di un problema di pubblicazione lato repository; riprova dopo aver corretto la causa. Se solo una fonte di terze parti non funziona e non ne hai bisogno, disabilita la relativa voce specifica .sourcesmentre .listcontatti il suo manutentore. Mantieni la verifica di sicurezza abilitata.
4. Verifica la correzione
Dopo aver corretto la sorgente o il portachiavi, esegui nuovamente apt update e verifica che non rimanga alcun errore di firma.
Eseguire sudo apt updatenuovamente. La riparazione è completa quando il repository interessato viene recuperato senza un avviso di firma e APT raggiunge Reading package lists... Done. Un aggiornamento riuscito non certifica che un editore di terze parti sia sicuro; conferma che la firma dei metadati corrisponde a una chiave che hai scelto di considerare attendibile. Se la verifica continua a fallire, ricontrollare l'URL del repository, il nome in codice, l'impronta digitale della chiave, le autorizzazioni del portachiavi e il token di errore esatto prima di apportare un'altra modifica.