GPG ERROR: NO_PUBKEY como solucionarlo en Ubuntu y derivados

27 noviembre 2015

En realidad esta entrada ya fue publicada hace bastante tiempo, sin embargo el problema sobre el que trata persiste al día de hoy. En su momento publiqué la solución manual, hoy también lo haré pero además veremos como hacerlo de forma automática. 

Sucede que bastante a menudo al intentar actualizar el sistema nos encontramos con una advertencia como esta:


Y lo que nos dice es que no encuentra la llave pública GPG, cuando esto sucede debemos tomar nota o copiar en el porta papeles mejor, el número que aparece luego de NO_PUBKEY, para el caso de arriba es: 6A9653F936FD5529

1- Entonces abrimos una terminal y ejecutamos los siguientes comandos:

gpg --keyserver keyserver.ubuntu.com --recv 6A9653F936FD5529

gpg --export --armor 6A9653F936FD5529 | sudo apt-key add -

 sudo apt-get update

Puede que al ejecutar el segundo comando la terminal nos muestre algo similar a esto:

gpg: /etc/apt/trusted.gpg.d//webupd8team-gnome3.gpg: recurso de bloqueo de claves: límite de recurso

La clave gpg será otra, esta la puse a modo de ejemplo, lo importante es que nos dice que se llegó al limite de recursos y está bloqueado por lo que no podemos importar la clave como queríamos, entonces vamos a solucionar esto antes de continuar, para eso vamos a eliminar el contenido del directorio /etc/apt/trusted.gpg.d y de esta manera desbloquear el problema. 

2- Desde la terminal ejecutamos los siguientes comandos:

cd /etc/apt/trusted.gpg.d

sudo rm -R *

sudo apt-get update

Con esto eliminamos el contenido del directorio y actualizamos los repositorios. Ya podemos volver a ejecutar los comandos del paso 1 y tendríamos el problema de la llave resuelto.

Esto estaría muy bien si se hubiera perdido una llave pero ¿que pasa si son varias? 
Anotar o copiar el número de cada clave y ejecutar el comando para cada una sería bastante engorroso, por lo que veremos como automatizar esto.

Conozco dos maneras y las dos funcionan muy bien.
La primera es un script que automatiza el proceso de importar las llaves faltantes. Lo instalamos desde una terminal:

sudo add-apt-repository ppa:nilarimogard/webupd8

sudo apt-get update

sudo apt-get install launchpad-getkeys

Una vez instalado lo ejecutamos en la terminal como super usuario:

sudo launchpad-getkeys

Entonces veremos que se pone a trabajar, demorará algo de tiempo depende de la cantidad de PPAs que tengamos añadidos y la velocidad de nuestra conexión.



Al terminar el trabajo nos mostrará algo como lo siguiente, donde nos dice que se importaron las claves y que ya no debería haber problemas.



Como puede verse destacado en la imagen nos pide que hagamos nuevamente una actualización de repositorios con:

sudo apt-get update

La otra manera de automatizar la solución al problema de las claves es una aplicación que recomiendo además para realizar cualquier tipo de tarea con los PPA (mantenimiento, solución de problemas, búsqueda de ppas para distintos paquetes y un largo etc)  se trata de  Y-PPA-Manager, ya veremos en una futura entrada todo el potencial de este programa, por ahora vamos a instalarlo y usarlo para lo que nos ocupa.

sudo add-apt-repository ppa:webupd8team/y-ppa-manager

sudo apt-get update

sudo apt-get install y-ppa-manager

Luego de instalado ya podemos ejecutarlo desde el dash o desde el menú/Sistema/ Y-PPA-Manager

En las siguientes imágenes se pueden ver los pasos a seguir para recuperar esas claves perdidas.






Luego de unos minutos el sistema de notificaciones nos dirá que Y-PPA-Manager terminó la tarea, solo resta salir del programa y nuevamente actualizar los repositorios desde la terminal.

sudo apt-get update

Y eso es todo, ya tenemos 3 maneras para solucionar el problema de llaves GPG perdidas, dos de ellas que automáticamente importan todas las que falten. De esta manera ya podremos actualizar el sistema normalmente.



1 comentario:

  1. Gracias por toda la información en el artículo, el problema se solucionó.

    ResponderEliminar