sviluppo-web-qa.it

Cosa devo fare quando ho ricevuto il messaggio di errore KEYEXPIRED dopo un aggiornamento apt-get?

Durante l'aggiornamento dei miei pacchetti su un sistema basato su Debian tramite a

Sudo apt-get update

Ho quel messaggio di errore:

Reading package lists... Done
W: GPG error: ftp://ftp.fr.debian.org stable/non-US Release: 
The following signatures were invalid: KEYEXPIRED 1138684904

Cosa devo fare per risolvere questo problema?

74
paulgreg

Sul Debian Wiki su SecureAPT , ho scoperto che dovrei rimuovere la riga contenente non-us da /etc/apt/sources.list.

L'ho fatto davvero e ha funzionato.

1
paulgreg

Per trovare le chiavi del repository scadute e i relativi ID, utilizzare apt-key come segue:

LANG=C apt-key list | grep expired

Otterrai un risultato simile al seguente:

pub   4096R/BE1DB1F1 2011-03-29 [expired: 2014-03-28]

L'ID chiave è il bit dopo il / ovvero BE1DB1F1 in questo caso.

Per aggiornare la chiave, eseguire

Sudo apt-key adv --recv-keys --keyserver keys.gnupg.net BE1DB1F1

Nota: L'aggiornamento della chiave ovviamente non funzionerà se il manutentore del pacchetto non ha (ancora) caricato una nuova chiave. In tal caso, non puoi fare altro che contattare il manutentore, presentare un bug contro la tua distribuzione, ecc.

na riga per aggiornare tutte le chiavi scadute: (grazie a @ryanpcmcquen)

for K in $(apt-key list | grep expired | cut -d'/' -f2 | cut -d' ' -f1); do Sudo apt-key adv --recv-keys --keyserver keys.gnupg.net $K; done
118
kynan

È necessario ottenere la chiave più recente e aggiungerla, a quel punto apt la rileverà e non si lamenterà. Questo non dovrebbe normalmente accadere, ma a volte succede. Ciò di cui hai veramente bisogno è conoscere il codice esadecimale della chiave che devi aggiungere; una volta che hai quello, è praticamente in discesa da lì.

Qualche esempio:

6
Avery Payne

Ho avuto un errore simile, ma il problema era nell'ora di sistema. L'anno era il 1961 :)

Ho corretto la data/ora del sistema e successivamente ho potuto aggiornare senza un professionista

2
slava

Potrebbe accadere anche quando la data non è corretta.

Controlla la data con

date

Se non è configurato correttamente, procedi come segue per impostare la sincronizzazione automatica di fuso orario e data.

apt-get install ntp ntpdate && service ntp stop
dpkg-reconfigure tzdata
ntpdate-debian
service ntp start
1
Aley

Una causa altamente improbabile, ma a volte possibile, per questo errore è se si è aggiunta la stessa chiave due volte con date di scadenza diverse. Probabilmente sapresti di averlo fatto perché questa risposta sia pertinente per te.

Questo può accadere, come per me, quando si ospita il proprio repository con le proprie chiavi. Se, quando la chiave sta per scadere, è sufficiente estenderne la durata anziché modificarla, e se è stata installata la chiave originale usando preconfigurazione ma la chiave aggiornata utilizzando un pacchetto deb, la vecchia chiave sarà in /etc/apt/trusted.gpg, mentre quello nuovo finisce come file separato in /etc/apt/trusted.gpg.d/. La vecchia chiave ombreggerà quella nuova, che sarà completamente ignorata da apt-key. Rimuovi la vecchia chiave eseguendo gpg --keyring /etc/trusted.gpg --delete-keys <keyid> e la tua nuova chiave verrà rilevata.

Questa è una configurazione angolare non standard, ma spero che la mia risposta possa salvare un po 'di confusione nel caso in cui qualcun altro incontri questo problema a causa dello stesso motivo che ho fatto io.

1
sampi

Un oneliner più semplice:

for key in $(Sudo apt-key list | awk -v FS='[ /:]+' '/expire[sd]/ {print $3}'); do Sudo apt-key adv --recv-keys --keyserver keys.gnupg.net $key; done

Sento solo che se stai facendo cose come usare cut più di una volta, c'è uno strumento migliore. (Inoltre, l'ho creato in base a na domanda diversa .)

1
Bruno Bronosky

Non devi fare nulla. È solo un avvertimento, puoi vederlo dal W: prefisso.

0
Michael Franzl