Ceci est une ancienne révision du document !


FIXME voir erreur_du_serveur_de_cles et gerer_les_cles_d_authentification
Page d'origine http://doc.ubuntu-fr.org/apt-key


Régler l'erreur GPG "NO_PUBKEY"

Lorsque vous ajoutez des dépôts afin de bénéficier de version supérieure de certains logiciels, certaines de ces sources peuvent utiliser un système de clés qui permet de vérifier l'authenticité et l'intégrité des paquets proposés.
Après avoir rechargé la liste des paquets vous pouvez alors vous trouvez confronté à un message d'erreur du genre :

W: GPG error: http://ppa.launchpad.net jaunty Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY <votre_n°_de_clé>

où <votre_n°_de_clé> est une suite alphanumérique comme par exemple 632D16BB0C713DA6.
Ce message indique qu'il vous manque une clé d'authentification. Il est possible d'utiliser le dépôt visé sans cette clé : ne pas la mettre ne vous empêchera donc en aucun cas d'utiliser les programmes contenus. Néanmoins, cette pratique est déconseillé car cela vous priverait de la garantie d'authenticité des paquets.

Saisissez dans un terminal la commande suivante:

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com <votre_n°_de_clé>

ou bien :

sudo apt-get install add-apt-key && sudo add-apt-key <votre_n°_de_clé>

où <votre_n°_de_clé> sera la valeur indiquée dans le message d'erreur.

Port HKP filtré

Si le port hkp (11371/tcp) est filtré (par exemple au travail), il vous faut passer en http :

sudo add-apt-key -k http://keys.gnupg.net <votre_n°_de_clé>

ou bien :

wget -O- "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x<votre_n°_de_clé>" | sudo apt-key add -
Attention: il n'y a pas d'espace entre 0x et <votre_n°_de_clé>

Si les méthodes précédentes n'ont pas été satisfaisantes, vous pouvez utilisez les deux lignes suivantes en remplaçant <votre_n°_de_clé> par le n° indiqué dans le message d'erreur :

gpg --keyserver keyserver.ubuntu.com --recv-key  <votre_n°_de_clé>
gpg -a --export <votre_n°_de_clé> | sudo apt-key add -

Script

Vous pouvez créer un script que vous appellerez pour ajouter vos clés (ça vous évite notamment de vous rappeler des commandes ;-) ).

  1. Créez, par exemple dans votre Dossier Personnel, un fichier apt-gpg-key, pour y insérer le code suivant :
    #!/bin/bash
    
    gpg --keyserver keyserver.ubuntu.com --recv-keys $1
    gpg --armor --export $1 | sudo apt-key add -

    FIXME sudo dans le script…

  2. Enregistrez le fichier puis rendez-le exécutable. Par exemple dans un terminal vous ferez:
    chmod +x apt-gpg-key
  3. Vous pourrez lancez le programme en saisissant :
    sudo ./apt-gpg-key <votre_n°_de_clé>
Si en exécutant le script, vous obtenez une erreur du type :
gpg: AVERTISSEMENT: le propriétaire du répertoire contenant est peu
sûr pour le fichier de configuration `/home/<votre-nom-utilisateur>/.gnupg/gpg.conf'
gpg: les appels aux programmes externes sont désactivés car les permissions
du fichier d'options sont trop peu sûres
gpg: erreur de communication avec le serveur de clés: erreur générale
gpg: la réception depuis le serveur de clés a échoué: erreur générale
gpg: AVERTISSEMENT: le propriétaire du répertoire contenant est peu
sûr pour le fichier de configuration `/home/<votre-nom-utilisateur>/.gnupg/gpg.conf'
OK

Saisissez dans un terminal:

sudo chown root:root .gnupg/
sudo chown -R root:root .gnupg/

FIXME pourquoi les 2 lignes -R devrait suffire non ?

Si lorsque vous exécutez une des commandes précédentes ou le script, vous obtenez une erreur du type :

gpg: le délai d'attente du serveur de clés a expiré
gpg: la réception depuis le serveur de clés a échoué: erreur du serveur de clés
  1. Vérifiez d'abord que vous avez internet. Vous pouvez par exemple voir si vous obtenez une réponse en saisissant dans un terminal :
    ping www.google.com
  2. Si vous avez Internet, tentez une requête sur le serveur de clés :
    ping keyserver.ubuntu.com

    En fonction de la réponse, vous devriez y voir plus clair:

    • Si le serveur ne répond pas, c'est qu'il n'est pas en ligne pour maintenance, donc réessayez plus tard.
    • Si vous avez un message du type:
      ping: sendmsg: Operation not permitted

      Le problème vient très probablement de votre pare-feu. Configurez-le pour autoriser les requêtes apt, ou désactivez-le le temps de l'ajout de la clé.

FIXME: Doublon en partie avec ppa

Launchpad hébergeant de nombreuses Archives Personnelles de Paquets ( PPA ), on peut donc y trouver de nombreuses applications intéressantes et très à jour. Elles sont forcément open-source et sont faciles à ajouter à la liste des dépôts de son système Ubuntu, à condition de les authentifier pour éviter l'erreur GPG.

Pour ajouter une PPA de façon totalement graphique, suivre 'Applications' → 'Logithèque Ubuntu', puis 'Édition' → 'Sources de logiciels …' et rentrer son mot de passe. La fenêtre 'Sources de logiciels' s'ouvre. Dans l'onglet 'Autres logiciels', cliquer sur 'Ajouter'. Coller la ligne commençant par "ppa" qu'on a repérée sur launchpad.net, dans la boîte de dialogue, par exemple :

ppa:nilarimogard/webupd8

Cliquer sur 'Ajouter une source de mise à jour'. Le dépôt est alors ajouté mais pas encore authentifié.

Pour l'authentification de façon graphique, procéder comme suit. Sur la page web de l'archive, par exemple https://launchpad.net/~nilarimogard/+archive/webupd8, cliquer sur 'Technical details about this PPA'. Un espace de texte est déroulé, cliquer sur le code inscrit sous 'Signing key'. Dans la nouvelle page, faire un clic droit sur le code hyperlien, et faire 'Enregistrer la cible du lien sous …'. Choisir une destination. Dans la fenêtre 'Sources de logiciels' ouverte précédemment, choisir l'onglet 'Authentification' puis cliquer sur 'Importer la clé …'. Rechercher et sélectionner le fichier qui vient d'être enregistré (le nom par défaut est 'lookup'). Fermer la fenêtre des sources de logiciels. Les captures d'écrans associées à cette manipulation peuvent être trouvées sur la page d'une question posée sur askubuntu.com (en anglais).

<note tip>Le dépôt ppa:nilarimogard/webupd8 proposé en exemple contient un logiciel très utile appelé launchpad-getkeys. Une fois installé et lancé en ligne de commande, il récupère tout seul toutes les clés d'authentification possibles, évitant du coup toutes les manipulations décrites plus haut. Il répare donc les erreurs GPG de façon très simple.


Contributeurs : Daëavelwyn, Mysteroid, BeAvEr (brève peaufination de la documentation), Agmenor (partie PPA).

  • utilisateurs/fabux/brouillons/cle_apt.1311958823.txt.gz
  • Dernière modification: Le 15/12/2011, 15:21
  • (modification externe)