it-swarm-es.com

¿Qué debo hacer cuando recibo el mensaje de error KEYEXPIRED después de una actualización de apt-get?

Al actualizar mis paquetes en un sistema basado en Debian por un

Sudo apt-get update

Tengo ese mensaje de error:

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

¿Qué debo hacer para arreglar esto?

74
paulgreg

En el Debian Wiki sobre SecureAPT , descubrí que debería eliminar la línea que contiene non-us de /etc/apt/sources.list.

Realmente hice eso y funcionó.

1
paulgreg

Para encontrar las claves de repositorio caducadas y sus ID, use apt-key como sigue:

LANG=C apt-key list | grep expired

Obtendrá un resultado similar al siguiente:

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

La ID de clave es el bit después de / es decir BE1DB1F1 en este caso.

Para actualizar la clave, ejecute

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

Nota: La actualización de la clave obviamente no funcionará si el responsable del paquete (todavía) no ha subido una nueva clave. En ese caso, es poco lo que puede hacer aparte de contactar al mantenedor, presentar un error contra su distribución, etc.

n forro para actualizar todas las claves caducadas: (gracias 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

Necesita obtener la clave más nueva y agregarla, en ese momento apt la detectará y no se quejará. Esto normalmente no debería suceder, pero a veces sucede. Lo que realmente necesita es saber el código hexadecimal de la clave que necesita agregar; una vez que tienes eso, es bastante cuesta abajo desde allí.

Algunos ejemplos:

6
Avery Payne

Tuve un error similar, pero el problema estaba en el tiempo del sistema. El año fue 1961 :)

Corregí la fecha/hora del sistema y después de eso podría actualizar sin un profesional

2
slava

También puede suceder cuando la fecha no es correcta.

Verifique la fecha con

date

Si está mal configurado, haga lo siguiente para configurar su zona horaria y sincronización automática de fecha.

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

Una causa altamente improbable, pero ocasionalmente posible, para este error es si ha agregado la misma clave dos veces con fechas de vencimiento diferentes. Probablemente sepa que lo ha hecho para que esta respuesta sea relevante para usted.

Esto puede suceder, como sucedió conmigo, al alojar su propio repositorio con sus propias claves. Si usted, cuando la clave está a punto de caducar, simplemente extienda su vida útil en lugar de cambiarla, y si instaló la clave original utilizando la configuración previa pero la clave actualizada utilizando un paquete deb, la clave anterior estará en /etc/apt/trusted.gpg, mientras que el nuevo termina como un archivo separado en /etc/apt/trusted.gpg.d/. La clave anterior sombreará la nueva, que será completamente ignorada por apt-key. Elimine la clave anterior ejecutando gpg --keyring /etc/trusted.gpg --delete-keys <keyid>, y tu nueva clave se detectará.

Esta es una configuración de esquina un poco no estándar, pero espero que mi respuesta pueda ahorrar algo de confusión en caso de que alguien más se encuentre con este problema debido a la misma razón que yo.

1
sampi

Un oneliner más 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

Siento que si está haciendo cosas como usar cut más de una vez, hay una herramienta mejor. (Además, creé esto basado en na pregunta diferente .)

1
Bruno Bronosky

No tienes que hacer nada. Es solo una advertencia, puedes ver eso desde el W: prefijo.

0
Michael Franzl