{{tag>dépôts }} ---- ====== Régler l'erreur GPG "NO_PUBKEY" ====== ===== Méthode générale ===== Lorsque vous ajoutez des [[:dépôts]] à votre distribution afin de bénéficier de version supérieure de certains logiciels, vous vous trouvez surement souvent 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é Pour pallier ce problème il vous suffit de saisir dans un [[:terminal]] la [[:commande_shell|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é ===== Port HKP filtré par un firewall ==== Si le port hkp (11371/tcp) est filtré par un firewall (par exemple au travail), passer en http : sudo add-apt-key -k hkp://keyserver.ubuntu.com:80 votre_n°_de_clé Il est également possible de le faire directement dans le fichier idoine, en remplçant le port par defaut 11371 par 80 en [[:tutoriel:comment_modifier_un_fichier|modifiant]] avec les [[:sudo|droits d'administration]] la ligne correspondante dans le fichier **/etc/default/add-apt-key** KEYSERVER=hkp://keyserver.ubuntu.com:80 puis de relancer la commande de la maniere suivante : sudo add-apt-key votre_n°_de_cle Il est également possible de saisir: wget -O- "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xvotre_n°_de_clé" | sudo apt-key add - Si ça ne marche pas 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-keys votre_n°_de_clé gpg -a --export votre_n°_de_clé | sudo apt-key add - Plus simplement, vous pouvez aussi vous créer un petit script que vous appellerez pour ajouter vos clés:\\ dans votre terminal, tapez : touch apt-gpg-key && xdg-open apt-gpg-key puis, dans l’éditeur de texte, copiez le code suivant : #!/bin/bash gpg --keyserver keyserver.ubuntu.com --recv-keys $1 gpg --armor --export $1 | sudo apt-key add - Enregistrez le fichier puis de nouveau dans votre terminal, rendez-le [[:droits|exécutable]] en faisant : chmod +x apt-gpg-key Enfin, lancez le programme en tapant : sudo ./apt-gpg-key votre_n°_de_clé ===== gpg: AVERTISSEMENT: le propriétaire du répertoire contenant est peu sûr ===== Si 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 Exécutez simplement : sudo chown root:root .gnupg/ sudo chown -R root:root .gnupg/ ===== gpg: le délai d'attente du serveur de clés a expiré ===== Si 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 - Vérifiez d'abord que vous avez internet, par exemple tentez ping www.google.com et vous verrez bien si vous obtenez une réponse ou non. - Si vous avez Internet, tentez un ping sur le serveur de clés : ping keyserver.ubuntu.comEn fonction de la réponse, vous y verrez 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 par contre vous avez un message du type:ping: sendmsg: Operation not permittedLe 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é. - Si vous ne le pouvez pas, par exemple si vous êtes sur un Hotspot... faites comme l'indique [[:ppa#erreur_du_serveur_de_cles|cette page]] Ceci a normalement [[https://launchpad.net/ubuntu/natty/+source/software-properties/0.78.1|été corrigé]] à partir de la version d'Ubuntu [[:Natty]].\\ Pour ceux qui utilisent une version antérieure il faut: * [[:tutoriel:comment_modifier_un_fichier|éditer]] avec les [[:sudo|droits d'administration]] le fichier **/usr/lib/python2.6/dist-packages/softwareproperties/ppa.py** * Chercher la ligne où est mentionné keyserver.ubuntu.com (DEFAULT_KEYSERVER = "keyserver.ubuntu.com") * Remplacez-la par hkp://keyserver.ubuntu.com:80/ (DEFAULT_KEYSERVER = "hkp://keyserver.ubuntu.com:80/") * [[:tutoriel:comment_modifier_sources_maj#recharger_la_liste_des_paquets|rechargez la liste des paquets]] [[http://superuser.com/questions/64922/how-to-work-around-blocked-outbound-hkp-port-for-apt-keys|Source]] Ou gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 3E5C1192 gpg --export --armor 3E5C1192 | sudo apt-key add - sudo apt-get upgrade avec 3E5C1192 la clé manquante. ===== Pour un PPA du site launchpad.net ===== Une fois un [[:dépôts|dépôt]] [[:PPA]] ajouté, il peut arriver qu'il faille l'authentifier. Pour la suite des explications et une meilleure compréhension, il sera pris en exemple le dépôt PPA **ppa:nilarimogard/webupd8**(([[https://launchpad.net/~nilarimogard/+archive/webupd8]])).\\ Celui-ci contient notamment 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. FIXME contient d'autres logiciel Pour le faire de de façon graphique, procéder comme suit: * Sur la page web de l'archive, donc pour l' exemple [[https://launchpad.net/~nilarimogard/+archive/webupd8|celui-ci]], 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 l'[[wpfr>hyperlien]] pour pouvoir //Enregistrer la cible du lien sous...//. Choisir une destination. * Dans la fenêtre [[:tutoriel:comment_modifier_sources_maj#avec_une_interface_graphique|Sources de logiciels]] prévue à cette effet, 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 [[http://askubuntu.com/questions/13065/how-do-i-fix-the-gpg-error-no-pubkey-without-terminal#13088|la page d'une question posée sur askubuntu.com]] (en anglais). =====Si malgré tout le problème persiste===== Commencez par forcer les mises à jour sans authentification, pour être sûr de tout avoir. sudo apt update && sudo apt-get -yf --allow-unauthenticated upgrade sauvegardez vos clés .gpg actuelles, au cas où ! Faites un dossier où mettre ça en attendant : mkdir ~/gpg-backups Virez tout /etc/apt/trusted.gpg.d/ et /etc/apt/trusted.gpg dans le dossier précédemment créé : sudo mv /etc/apt/trusted.gpg.d/*.* ~/gpg-backups/ sudo mv /etc/apt/trusted.gpg ~/gpg-backups/ Installez le gestionnaire / réparateur de PPA [[yppamanager|y-ppa-manager]] : sudo add-apt-repository ppa:webupd8team/y-ppa-manager && sudo apt-get update && sudo apt-get install -y y-ppa-manager Vous pouvez le lancer en ligne de commande pour voir ses sorties : y-ppa-manager ou simplement par son lanceur graphique normal. Dans [[yppamanager|Y-ppa-manager]], cliquez sur à "Advanced". Des options pour réparer les problèmes de clés manquantes ou de BADSIG vous y sont proposées. Commencez par recharger les clés. En cas de besoin, jetez un œil aux autres choix, ils peuvent être utiles. Soyez patients lors de la sélection d'un option, attendez pour le solliciter de nouveau : il travaille en fond et vous avertira d'une notification une fois sa tâche terminée (si lancé en ligne de commande, vous pouvez contrôler son fonctionnement dans la fenêtre de terminal). ---- Contributeurs : [[utilisateurs:Daëavelwyn]], [[utilisateurs:Mysteroid]], [[utilisateurs:BeAvEr]] (brève peaufination de la documentation), [[utilisateurs:Agmenor]] (partie PPA), [[utilisateur:Jau]].