Corregir errores en las claves GPG de los repositorios

En: Tutoriales

Imprime este post Imprime este post 2 abr 2009

Logo de GNUPGMuchas veces nos suele suceder en Ubuntu y Debian que agregamos repositorios de software que todavía no es lanzado como estable, o que no está en los repositorios oficiales de nuestra distribución, y obtenemos un error de claves GPG.

Primero, lo primero. ¿Qué son las misteriosas claves GPG?

Las claves GPG(GNU Privacy Guard) son claves libres de cifrado y firmas digitales. Básicamente, los que nos permiten es verificar que el software que estemos por descargar sea el correcto, y no haya sido adulterado por terceros.

Cuando agregamos repositorios, al querer actualizar la fuente de paquetes(el clásico “sudo apt-get update”), nos dá el siguiente error(o muy similar):

W: Error de GPG: http://ppa.launchpad.net intrepid Release Las firmas siguientes no se pudieron verificar porquesu llave pública no está disponible:
W: Tal vez quiera ejecutar ‘apt-get update’ para corregir estos problemas

Este error me dió al querer instalar Chromium bajo Kubuntu.

Candado GNUGPPara poder corregir esto, una opción es conseguir la llave específica para ese repositorio(como lo hice en el ejemplo de Chromium), pero hay una manera más simple, y es la que veremos hoy:

Abriremos nuestro editor de texto preferido, y copiaremos el siguiente código(pero también pueden saltearse este paso descargando el archivo desde aquí):

##=========================================================
## El Cerrajero — Version 0.3 por Sapphire
##=========================================================
##Si el UID es distinto a 0, entonces:
if [ "$UID" > 1 ]; then
echo ” ”
echo “El script tiene que ser ejecutado como ROOT.”
echo ” ”
return 0
fi
##Si los argumentos estan vacios:
if [ -z "$1" ]; then
echo ” ”
echo “Usage: sh cerrajero.sh -a | -s [GPG Error ID.] | –help”
echo ” ”
echo “–a Busca automaticamente los errores y los intenta corregir.”
echo “–s Poner junto al codigo de error para solucionar solo ese.”
echo “–v Version del script”
echo “–help Esta ayuda que esta viendo.”
echo ” ”
return 0
##Si el argumento –a esta puesto, entonces:
elif [ "$1" = --a ]; then
##Texto al azar que queda bien [?] xD
echo ” ”
echo “Updateando la lista: /etc/apt/sources.list”
echo ” ”
echo “Esto puede tomar un tiempo, espere..”
echo ” ”
##Hace un apt-get update y busca los codigos de error, guardandolo en variables
for k in $(apt-get update 2>&1 | grep -o NO_PUBKEY.*|sed ’s/NO_PUBKEY //’);
##Para cada codigo de variable hace un –recv-keys y consigue el respectivo key
do gpg –recv-keys –keyserver wwwkeys.eu.pgp.net $k;gpg –armor –export $k|apt-key add -;
##Fin del “FOR”
done
##Indicacion de fin
echo “Ya esta nene, tenes todas las llaves que necesitas”
echo ” ”
return 0
##Si el argumento –s esta siendo usado, entonces:
elif [ "$1" = --s ]; then
##Para el codigo del argumento 2 hace un –recv-keys y consigue el respectivo key
gpg –recv-keys –keyserver wwwkeys.eu.pgp.net $2;gpg –armor –export $2|apt-key add -;
##Si la –s fue elegida, pero no se puso el codigo del error..
if [ -z "$2" ]; then
echo “Es ./cerrajero.sh –s XXXXXXXXX (Donde X son las siglas del ID del error de GPG.)”
echo “Use –help para mas informacion.”
echo ” ”
##Fin del IF
return 0
fi
##Indicacion de fin
echo “Ya esta nene, tenes todas las llaves que necesitas”
echo ” ”
##Si el argumento –v esta siendo usado, entonces:
elif [ "$1" = --v ]; then
echo “El Cerrajero - Version 0.3 por Sapphire/Elidix.”
return 0
##Si el argumento –help esta siendo usado, entonces:
elif [ "$1" = --help ]; then
echo ” ”
echo “Usage: sh cerrajero.sh -a | -s [GPG Error ID.] | –help”
echo ” ”
echo “–a Busca automaticamente los errores y los intenta corregir.”
echo “–s Poner junto al codigo de error para solucionar solo ese.”
echo “–v Version del script”
echo “–help Esta ayuda que esta viendo.”
echo ” ”
return 0
##Fin del IF y del script
fi
##=========================================================
## Fin del script
##=========================================================

Luego, guardaremos este archivo como cerrajero.sh y le daremos permisos de ejecución de la siguiente manera(mediante una consola, acuérdense de posicionarse en el directorio que guardaron el script):

sudo chmod a+x cerrajero.sh

Por último, lo ejecutaremos:

sudo sh ./cerrajero.sh

Y con eso, se repararán todas las claves GPG. No lo pude probar, ya que por ahora no tengo este problema. Pero un user llegó a mi blog teniendo este problema(según Google Analytics). Este tutorial es cortesía de La Biblia de Kubuntu.

ACTUALIZACIÓN: El script anterior me dió algunos problemas, pero queda en probar ustedes. También encontré otro que no me solucionó el problema, porque parece que acaban de cambiar la llave del un repositorio, entonces no puede verificarla(o algún error debe haber).

Desde aquí pueden bajar el otro script. Deben hacer los mismos pasos:

sudo chmod a+x launchpad-update

sh ./launchpad-update

Aquí les pedirá que ingresen la versión de Ubuntu que utilizan. Por lo tanto, si utilizan Intrepid Ibex (8.10), deberán escribir:

sudo sh ./launchpad-update intrepid

¡Y eso es todo!. Este script lo saqué de aquí.


Artículos Relacionados

5 Respuestas a Corregir errores en las claves GPG de los repositorios

Avatar

CORREGIR ERROR DE GPG TRAS ACTUALIZACION EN UBUNTU « EL KIOSCO

abril 12th, 2009 a las 0:30

[...] por los ojos de tux y por [...]

WordPress MU WordPress MU
¡Contestá este comentario!

Avatar

pablo

abril 12th, 2009 a las 18:34

Bueno, pero mas alla del scrip que esta genial. Entonces hay una manera de hacerlo a mano cuando no tenes la llave publica. Digo por que a mi me paso que me ponia a agregar repositorios y en ningun lado daba con las llaves para bajarlas. Asi que no me dejaba usar los repositorios

pablo´s last blog post..a las pruebas

Navegando con IceWeasel 3.0.6 IceWeasel 3.0.6 en Debian GNU/Linux Debian GNU/Linux
¡Contestá este comentario!

Avatar

phyro

abril 12th, 2009 a las 18:38

@pablo: Sí, son muy útiles para corregir las llaves de los repositorios rápidamente, además, si tenemos varias llaves a corregir no tenemos que ir buscando por toda la internet hasta hallarlas :mrgreen: .

Navegando con Opera 10.00 Opera 10.00 en GNU/Linux GNU/Linux
¡Contestá este comentario!

Avatar

Cristina

febrero 16th, 2010 a las 9:25

Pues a mi no me ha ido el segundo (ni el primero), es decir me pone OK y cuando updateo el apt-get me dan los mismos problemas con las keys :P

Aun así se agradece =)

Navegando con Firefox 3.0.17 Firefox 3.0.17 en Ubuntu 9.04 x64 Ubuntu 9.04 x64
¡Contestá este comentario!

Avatar

phyro

febrero 16th, 2010 a las 14:37

@Cristina: Mm, quizás cambio el sistema. ¡Lo siento!.

Navegando con GNU IceCat 3.6 GNU IceCat 3.6 en Gentoo x64 Gentoo x64
¡Contestá este comentario!

¡Dejá tu comentario!

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!:

CommentLuv badge

Suscribirse sin comentar

RSS-Tux Twitter-Tux
TwitterCounter for @losojosdetux

¡Suscribite por e-mail!
Ingresa tu e-mail:

Enviado por FeedBurner


Banners

Válido para XHTML 1.0 Transitional [Valid RSS] Gente leyendo el blog

Encuestas

Lo siento, no hay encuestas en este momento.