Agregar llaves de repositorios apt en Ubuntu

2 minuto de lectura

Les ha pasado que cuando agregan repositorios extras a su sources.list a veces apt alega de que los paquetes no están firmados o de que no puede encontrar la llave para verificarlos?

Bueno… la mayoría de las veces uno no pone atención y le da aceptar al apt, entonces ¿Cómo podemos hacerlo de la forma correcta?

  • Primero: Debes estar seguro que el repositorio es fiable, es decir, que puedas confiar en lo que los desarrolladores ponen a disposición de los usuarios. Ha pasado que a veces los repositorios son intervenidos por manos negras y alteran los paquetes agregándoles algo que beneficie al atacante. Paso hace un tiempo atrás en debian y los repos de fedora.
  • Segundo: Una vez que tienes certeza del primer punto, puedes importar la llave del repositorio en cuestión. ¿Cómo se hace eso? veamos un ejemplo ;)
Descargados 55,6kB en 4min 39s (199B/s)
Leyendo lista de paquetes... Hecho

W: Error de GPG: http://ppa.launchpad.net jaunty Release Las firmas
siguientes no se pudieron verificar porque su llave pública no está
disponible: NO_PUBKEY B9F1C432AE74AE63

W: Error de GPG: http://192.168.1.101 testing Release Las firmas
siguientes no se pudieron verificar porque su llave pública no está
disponible: NO_PUBKEY A040830F7FAC5991

W: Error de GPG: http://192.168.1.101 intrepid Release Las firmas
siguientes no se pudieron verificar porque su llave pública no está
disponible: NO_PUBKEY 079A381C44869960

W: Tal vez quiera ejecutar 'apt-get update' para corregir estos problemas

Si esto les ha pasado mas de una vez es porque les falta la firma y llave de ese repositorio, entonces hagámoslo de la forma clásica: Primero importamos la llave con lo que sale en la información del error de apt, donde dice **NO_PUBKEY NUMERO **y luego el segundo comando exporta la llave importada para que apt-key pueda agregarla a su llavero.

$ sudo gpg --keyserver keyserver.ubuntu.com --recv 079A381C44869960
$ sudo gpg --export --armor 079A381C44869960 | sudo apt-key add -

Una forma un poco mas eficiente es utilizando el comando apt-key directamente, veamos como se hace todo en un solo paso:

$ sudo apt-key adv --recv-keys --keyserver \
    keyserver.ubuntu.com 079A381C44869960

De esta forma no utilizamos el llavero o keyring de gpg sino que usamos directamente el llavero de apt. Este lo pueden ver en /etc/apt/trusted.gpg

Ahora bien, para facilitarnos la vida en ubuntu (no se si debian lo tenga, creo que no) existe un paquete (que hay que instalar) llamado add-apt-key que nos permite hacer este mismo trabajo de forma mas simple. Lo primero es instalar el paquete:

$ sudo apt-get install add-apt-key

Luego importamos las llaves de la siguiente forma (como root):

$ sudo su -
# add-apt-key --keyserver keyserver.ubuntu.com 079A381C44869960

Es todo por hoy, espero que les sea útil este pequeño post. En otra oportunidad profundizaré en los conceptos de gpg, llaves y llaveros.

Comentar