web-dev-qa-db-fra.com

Que dois-je faire lorsque je reçois le message d'erreur KEYEXPIRED après une mise à jour apt-get?

Lors de la mise à jour de mes paquets sur un système basé sur Debian par un

Sudo apt-get update

J'ai ce message d'erreur:

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

Que dois-je faire pour résoudre ce problème?

74
paulgreg

Sur le Debian Wiki sur SecureAPT , j'ai trouvé que je devais supprimer la ligne contenant non-us depuis /etc/apt/sources.list.

J'ai fait ça et ça a marché.

1
paulgreg

Pour rechercher les clés de référentiel expirées et leurs ID, utilisez apt-key comme suit:

LANG=C apt-key list | grep expired

Vous obtiendrez un résultat similaire au suivant:

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

L'ID de clé est le bit après le / c'est à dire. BE1DB1F1 dans ce cas.

Pour mettre à jour la clé, exécutez

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

Note: La mise à jour de la clé ne fonctionnera évidemment pas si le mainteneur du paquet n'a pas (encore) téléchargé une nouvelle clé. Dans ce cas, vous ne pouvez pas faire grand-chose d'autre que de contacter le responsable, de déposer un bogue contre votre distribution, etc.

n liner pour mettre à jour toutes les clés expirées: (merci à @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

Vous devez obtenir la nouvelle clé et l'ajouter, auquel cas apt la détectera et ne se plaindra pas. Cela ne devrait normalement pas se produire, mais cela arrive parfois. Ce dont vous avez vraiment besoin, c'est de connaître le code hexadécimal de la clé que vous devez ajouter; une fois que vous avez cela, c'est à peu près en descente à partir de là.

Quelques exemples:

6
Avery Payne

J'ai eu une erreur similaire, mais le problème était lié à l'heure du système. L'année était 1961 :)

J'ai corrigé la date/heure du système et après cela, je pouvais mettre à jour sans pro

2
slava

Cela peut également se produire lorsque la date n'est pas correcte.

Vérifiez la date avec

date

S'il est mal configuré, procédez comme suit pour définir votre fuseau horaire et la synchronisation automatique de la date.

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

Une cause très peu probable, mais parfois possible, de cette erreur est d'avoir ajouté la même clé deux fois avec des dates d'expiration différentes. Vous savez probablement que vous l'avez fait pour que cette réponse soit pertinente pour vous.

Cela peut arriver, comme pour moi, lors de l'hébergement de votre propre référentiel avec vos propres clés. Si vous, lorsque la clé est sur le point d'expirer, prolongez simplement sa durée de vie plutôt que de la modifier, et si vous avez installé la clé d'origine à l'aide de la préconfiguration mais la clé mise à jour à l'aide d'un paquet deb, alors l'ancienne clé sera dans /etc/apt/trusted.gpg, tandis que le nouveau se retrouve dans un fichier séparé sous /etc/apt/trusted.gpg.d/. L'ancienne clé masquera la nouvelle, qui sera complètement ignorée par apt-key. Supprimez l'ancienne clé en exécutant gpg --keyring /etc/trusted.gpg --delete-keys <keyid>, et votre nouvelle clé sera détectée.

Ceci est un peu une configuration d'angle non standard, mais j'espère que ma réponse pourra éviter une certaine confusion au cas où quelqu'un d'autre rencontrerait ce problème pour la même raison que moi.

1
sampi

Un oneliner plus simple:

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

J'ai juste l'impression que si vous faites des choses comme utiliser cut plus d'une fois, il y a un meilleur outil. (En outre, j'ai créé cela sur la base de ne question différente .)

1
Bruno Bronosky

Vous n'avez devez rien faire. C'est juste un avertissement, vous pouvez voir qu'à partir du W: préfixe.

0
Michael Franzl