it-swarm-pt.tech

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

Ao atualizar meus pacotes em um sistema baseado em 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?

74
paulgreg

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

Na verdade, eu fiz isso e funcionou.

1
paulgreg

Para encontrar quaisquer chaves de repositório expiradas e seus IDs, use apt-key do seguinte modo:

LANG=C apt-key list | grep expired

Você obterá um resultado semelhante ao seguinte:

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

O ID da chave é o bit após o / i.e. BE1DB1F1 nesse 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 entrar em contato com o mantenedor, registrar um bug em sua distribuição, etc.

m liner 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
118
kynan

Você precisa obter a chave mais recente e adicioná-la, quando o apt irá detectá-la e não reclamar. Isso normalmente não deveria acontecer, mas às vezes acontece. O que você realmente precisa é conhecer o código hexadecimal da chave que você precisa adicionar; depois de ter isso, é praticamente ladeira abaixo a partir daí.

Alguns exemplos:

6
Avery Payne

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

Corrigi a data/hora do sistema e, depois disso, era possível atualizar sem um profissional

2
slava

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 o fuso horário e a sincronização automática de data.

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

Uma causa altamente improvável, mas ocasionalmente possível, para esse erro é se você adicionou a mesma chave duas vezes com datas de validade diferentes. Você provavelmente saberia ter feito isso para que esta 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 sua vida útil em vez de alterá-la, 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 termina como um arquivo separado em /etc/apt/trusted.gpg.d/. A chave antiga 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.

Essa é uma configuração de canto não padrão, mas espero que minha resposta possa salvar alguma confusão, caso alguém encontre esse problema devido ao mesmo motivo que eu.

1
sampi

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 apenas sinto que se você estiver fazendo coisas como usar cut mais de uma vez, existe uma ferramenta melhor. (Além disso, eu criei isso com base em ma pergunta diferente .)

1
Bruno Bronosky

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

0
Michael Franzl