Signature des dépôts ou Erreur GPG pendant apt-get update
Si comme moi vous avez ajouté des nouveaux dépôts à votre source list sous debian (ici lenny), il se peut qu’après avoir effectué un apt-get update vous ayez des erreurs de clé de type GPG. Pour ma part, cela s’est produit avec le populaire dépôt de debian-multimedia.org :
Ajouter dans /etc/apt/sources.list les fameux dépôts multimedia :
deb http://www.debian-multimedia.org stable main
deb http://www.debian-multimedia.org etch main
deb http://www.debian-multimedia.org sid main
Donc après un
apt-get update
vous allez avoir ce genre de message :
Lecture des listes de paquets... Fait
W: GPG error: http://www.debian-multimedia.org sid Release: Les signatures suivantes n'ont pas pu être vérifiées car la clé publique n'est pas disponible : NO_PUBKEY <votre cle>
W: Vous pouvez lancer «apt-get update» pour corriger ces problèmes.
Tout ce dont nous avons besoin est le paquet gnupg :
apt-get install gnupg
A ce stade, nous sommes devant un dépôt reconnu de debian et sur lequel nous avons toute confiance. On peut donc ajouter la clé GPG à l’utilitaire apt pour cette source. Nous allons la récupérer depuis le serveur de clés :
gpg --keyserver hkp://wwwkeys.eu.pgp.net --recv-keys <votre clé>
Il faut bien entendu remplacer <votre clé> par celle qui apparait dans votre message d’erreur, pour ma part 07DC563D1F41B907 :
gpg: requete de la cle 1F41B907 du serveur hkp wwwkeys.eu.pgp.net
gpg: /root/.gnupg/trustdb.gpg: base de confiance creee
gpg: cle 1F41B907: cle publique « Christian Marillat <marillat@debian.org> » importee
gpg: aucune cle de confiance ultime n'a ete trouvee
gpg: Quantite totale traitée: 1
gpg: importée: 1
A ce stade la clé est importée, il faut maintenant l’intégrer à APT :
gpg --armor --export <votre clé> | apt-key add -
C’est terminé. Le dépôt sera signé tant que ce dernier ne changera pas la clé pour sa source.
Pour ma part je me suis fait un petit shell GETKEY:
#!/bin/sh
# @(#) TITLE MESSAGE: Recuperation des cles GPG et exportation vers apt
# @(#) Feilong version 05/01/2009
# @(#) Syntaxe: GETKEY KEY
# @(#) MACHINE VM DEBIAN lenny
if [ $(id -u) != "0" ]; then
echo "Seul root peut executer ce shell" >&2
exit 1
fi
if [ $# -ne 1 ]; then
echo "syntaxe : GETKEY <votre cle>"
exit 1
fi
gpg --keyserver hkp://wwwkeys.eu.pgp.net --recv-keys $1
if [ $? -ne 0 ]; then
echo " Une erreur est survenu pendant le téléchargement de la clé"
exit 1
fi
gpg --armor --export $1 | apt-key add -
if [ $? -ne 0 ]; then
echo " Une erreur est survenu pendant l'export de la clé vers apt"
exit 1
fi
apt-get update