O que devo fazer quando recebo a mensagem de erro KEYEXPIRED após uma atualização do apt-get?

66

Enquanto atualizo meus pacotes em um sistema baseado no Debian por um

sudo apt-get update

Eu recebi essa mensagem de erro:

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

O que devo fazer para corrigir isso?

    
por paulgreg 11.05.2009 / 21:58

8 respostas

2

No Wiki Debian sobre SecureAPT , descobri que eu deveria remover a linha contendo non-us de /etc/apt/sources.list.

Eu realmente fiz isso e funcionou.

    
por 12.05.2009 / 22:12
110

Para encontrar as chaves do repositório expiradas e seus IDs, use apt-key da seguinte forma:

LANG=C apt-key list | grep expired

Você receberá um resultado semelhante ao seguinte:

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

O ID da chave é o bit depois do / , ou seja, BE1DB1F1 , neste caso.

Para atualizar a chave, execute

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

Nota: A atualização da chave obviamente não funcionará se o mantenedor do pacote (ainda) não tiver carregado uma nova chave. Nesse caso, há pouco que você pode fazer além de contatar o mantenedor, arquivar um bug contra sua distribuição, etc.

Um forro para atualizar todas as chaves expiradas: (graças 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
    
por 25.07.2014 / 01:44
6

Você precisa pegar a chave mais nova e adicioná-la, e nesse ponto o apt irá detectá-la e não reclamar. Isso normalmente não deveria acontecer, mas às vezes acontece. O que você realmente precisa é saber o código hexadecimal da chave que você precisa adicionar; uma vez que você tem isso, é muito descendente de lá.

Alguns exemplos:

por 11.05.2009 / 22:09
2

Eu tive um erro semelhante, mas o problema estava na hora do sistema. O ano foi 1961:)

Eu corrigi a data / hora do sistema e depois disso posso atualizar sem um pro

    
por 03.04.2013 / 18:25
1

Também pode acontecer quando a data não está correta.

Verifique a data com

date

Se estiver configurado incorretamente, faça o seguinte para definir a sincronização automática de fuso horário e data.

apt-get install ntp ntpdate && service ntp stop
dpkg-reconfigure tzdata
ntpdate-debian
service ntp start
    
por 24.03.2016 / 15:43
1

Uma causa altamente improvável, mas ocasionalmente possível, para esse erro é se você tiver adicionado a mesma chave duas vezes com datas de expiração diferentes. Você provavelmente saberia ter feito isso para que essa resposta seja relevante para você.

Isso pode acontecer, como aconteceu comigo, ao hospedar seu próprio repositório com suas próprias chaves. Se você, quando a chave estiver prestes a expirar, simplesmente estenderá seu tempo de vida em vez de alterá-lo, e se você instalou a chave original usando pré-configuração, mas a chave atualizada usando um pacote deb, a chave antiga estará em /etc/apt/trusted.gpg , enquanto o novo acaba como um arquivo separado em /etc/apt/trusted.gpg.d/ . A chave antiga irá sombrear a nova, que será completamente ignorada por apt-key . Remova a chave antiga executando gpg --keyring /etc/trusted.gpg --delete-keys <keyid> e sua nova chave será detectada.

Esta é uma configuração de canto não padrão, mas espero que minha resposta possa economizar alguma confusão caso alguém encontre esse problema pela mesma razão que eu.

    
por 11.01.2018 / 21:45
1

Um oneliner mais simples:

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

Eu sinto que se você está fazendo coisas como usar cut mais de uma vez, existe uma ferramenta melhor. (Além disso, criei isso com base em uma pergunta diferente .)

    
por 24.04.2018 / 20:37
0

Você não precisa fazer nada. É apenas um aviso, você pode ver isso no prefixo W: .

    
por 03.06.2015 / 13:53