Problema de debmirror: gpgv: Can’t check signature: public key not found

1 minute read

Debmirror problem


Tengo un repositorio donde son servidos paquetes de Debian y Ubuntu de forma que las personas en la red interna puedan actualizar usando este repositorio. Pero el otro día me di cuenta que este no podía sincronizarse contra el repositorio de Debian como se describe en el artículo Cómo crear un mirror de Debian y Ubuntu con debmirror. Cuando trataba de ejecutar el script de sincronización este arrojaba errores y abortaba.

Síntomas

Cuando se ejecuta el script de debmirror, este falla con un error similar a este:

gpgv: Signature made Wed 17 Jul 2013 04:40:31 PM CST using RSA key ID 473041FA
[GNUPG:] ERRSIG AED4B06F473041FA 1 2 00 1374050431 9
[GNUPG:] NO_PUBKEY AED4B06F473041FA
gpgv: Can’t check signature: public key not found
gpgv: Signature made Wed 17 Jul 2013 04:40:31 PM CST using RSA key ID 46925553
[GNUPG:] ERRSIG 8B48AD6246925553 1 2 00 1374050431 9
[GNUPG:] NO_PUBKEY 8B48AD6246925553
gpgv: Can’t check signature: public key not found
Release signature does not verify

Causa

Los paquetes son validados usando una llave, de forma que podamos confiar en lo que descargamos desde los repositorios de origen y qué es instado finalmente en nuestros computadores. Algunos repositorios tienen un juego de llaves con llaves conocidas, y es probable que una nueva llave firmada fue agregada al juego de llaves de Debian/Ubuntu. Esto puede ocurrir si hay una nueva versión de la distro, y nuevas llaves son añadidas, haciendo que nuestro juego de llaves quede obsoletas (les falta las nuevas llaves).

Solución

Para arreglar este inconveniente, sigue los siguientes pasos dependiendo de la distro a la que le estés haciendo mirror:

Debian

Actualiza el repositorio e importa las nuevas llaves:

aptitude update
aptitude safe-upgrade
gpg --keyring /usr/share/keyrings/debian-archive-keyring.gpg  --export | gpg --no-default-keyring --keyring /var/data/keyrings/debian/trustedkeys.gpg --import

Nota: Si las llaves no fueron agregadas, descarga el último paquete  debian-archive-keyring desde los repoitorioes, extráelo y usa este juego de llaves. Ejemplo:

wget http://ftp.us.debian.org/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2012.4_all.deb
dpkg -x debian-archive-keyring_2012.4_all.deb  ~
gpg --keyring ~/usr/share/keyrings/debian-archive-keyring.gpg  --export | gpg --no-default-keyring --keyring /var/data/keyrings/debian/trustedkeys.gpg --import

Ubuntu

Descarga el último paquete ubuntu-archive-kering y extráelo, luego usa este juego de llaves. Ejemplo:

wget http://mirror.pnl.gov/ubuntu//pool/main/u/ubuntu-keyring/ubuntu-keyring_2012.05.19_all.deb
dpkg -x ubuntu-keyring_2012.05.19_all.deb ~
gpg --keyring ~/usr/share/keyrings/ubuntu-archive-keyring.gpg --export|gpg --no-default-keyring --keyring /var/data/keyrings/ubuntu/trustedkeys.gpg --import

Luego el script de sincronización del mirror debe correr sin errores, descargando las últimas actualizaciones.

Leave a Comment