Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
apt-key [Le 13/12/2017, 12:49] – [Pour un PPA du site launchpad.net] 78.194.2.45apt-key [Le 26/06/2025, 22:12] (Version actuelle) – wget no sillent 89.86.155.3
Ligne 1: Ligne 1:
 {{tag>dépôts }} {{tag>dépôts }}
 ---- ----
-====== Régler l'erreur GPG "NO_PUBKEY" ======+====== Gestion des trousseaux de clés : régler l'erreur « GPG "NO_PUBKEY" » ======
  
 ===== Méthode générale ===== ===== 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 :+<note warning>Attention apt-key est obsolète utilisez plutôt</note> 
 + 
 + 
 +<code> 
 +wget -O- "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xvotre_n°_de_clé" | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/nondudepot.gpg > /dev/null 
 +</code> 
 + 
 +Lorsque vous ajoutez des [[:ppa|dépôts ppa]] à votre distribution afin de bénéficier de version supérieure de certains logiciels, vous vous trouvez sûrement souvent confronté à un message d'erreur du genre : 
 +<file>W: GPG error: http://ppa.launchpad.net xenial Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY votre_n°_de_clé</file> 
 + 
 +Pour pallier ce problème il vous suffit de saisir dans un [[:terminal]] la [[:commande_shell|commande]] suivante : 
 + 
 +<code bash>sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com votre_n°_de_clé</code> 
 + 
 + 
 +<note warning>Attention apt-key est obsolète utilisez plutôt</note> 
 + 
 + 
 +<code bash> 
 +sudo apt-get -y purge add-apt-key 
 +sudo nano /usr/bin/add-apt-key 
 +</code> 
 + 
 +<code bash> 
 +#!/bin/bash 
 +sudo rm -f "/etc/apt/trusted.gpg.d/\$1.gpg" 
 +wget -O- "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x"$1"" | gpg --dearmor | sudo tee "/etc/apt/trusted.gpg.d/\$1.gpg" > /dev/null 
 +sudo apt-get update 
 +</code> 
 + 
 +<code bash> 
 +sudo chmod +x /usr/bin/add-apt-key 
 +sudo add-apt-key votre_n°_de_clé 
 +</code> 
 + 
 + 
 + 
  
-<note warning>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é</note> 
  
-Pour pallier ce problème il vous suffit de saisir dans un [[:terminal]] la [[:commande_shell|commande]] suivante: 
  
-<code>sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com votre_n°_de_clé</code> +<note tip>Encore plus simple ! Cette ligne de commande régénère les clés GPG manquantes 
-ou bien : +<code>sudo apt-get update 2>&1 | sed -ne 's?^.*NO_PUBKEY ??p' | xargs -r -- sudo add-apt-key</code></note>
-<code>sudo apt-get install add-apt-key && sudo add-apt-key votre_n°_de_clé</code>+
  
 ===== Port HKP filtré par un firewall ==== ===== Port HKP filtré par un firewall ====
Ligne 19: Ligne 53:
 <code>sudo add-apt-key -k hkp://keyserver.ubuntu.com:80 votre_n°_de_clé</code> <code>sudo add-apt-key -k hkp://keyserver.ubuntu.com:80 votre_n°_de_clé</code>
  
-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** +Il est également possible de le faire directement dans le fichier idoine, en remplaçant le port par défaut 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** 
 <file>KEYSERVER=hkp://keyserver.ubuntu.com:80</file> <file>KEYSERVER=hkp://keyserver.ubuntu.com:80</file>
 puis de relancer la commande de la maniere suivante : puis de relancer la commande de la maniere suivante :
Ligne 78: Ligne 112:
 ===== gpg: le délai d'attente du serveur de clés a expiré ===== ===== gpg: le délai d'attente du serveur de clés a expiré =====
 Si vous obtenez une erreur du type : Si vous obtenez une erreur du type :
-<code>+<file>
 gpg: le délai d'attente du serveur de clés a expiré 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 gpg: la réception depuis le serveur de clés a échoué: erreur du serveur de clés
-</code+</file
-  - Vérifiez d'abord que vous avez internet, par exemple tentez <code>ping www.google.com</code> et vous verrez bien si vous obtenez une réponse ou non. +  - Vérifiez d'abord que vous avez internet, par exemple tentez <code bash>ping www.google.com</code> 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 : <code>ping keyserver.ubuntu.com</code>En 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:<code>ping: sendmsg: Operation not permitted</code>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é.  +  - Si vous avez Internet, tentez un ping sur le serveur de clés : <code bash>ping keyserver.ubuntu.com</code>En 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: <code bash>ping: sendmsg: Operation not permitted </code> 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é.  
-  - 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]] +  - Si vous ne le pouvez pas, par exemple si vous êtes sur un Hotspot... faites comme l'indique [[:ppa#erreur_du_serveur_de_cles|la section « Erreur de serveur de clés »]].
-<note important> +
-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é <file>keyserver.ubuntu.com (DEFAULT_KEYSERVER = "keyserver.ubuntu.com")</file> +
-  * Remplacez-la par <file>hkp://keyserver.ubuntu.com:80/ (DEFAULT_KEYSERVER = "hkp://keyserver.ubuntu.com:80/")</file> +
-  * [[: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 <code> +
-   gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 3E5C1192 +
-   gpg --export --armor 3E5C1192 | sudo apt-key add - +
-   sudo apt-get upgrade</code> avec 3E5C1192 la clé manquante. +
-</note>+
  
 ===== Pour un PPA du site launchpad.net ===== ===== Pour un PPA du site launchpad.net =====
Ligne 108: Ligne 129:
 Celui-ci contient notamment un logiciel très utile appelé **launchpad-getkeys**. \\ Une fois installé et lancé en ligne de commandes : Celui-ci contient notamment un logiciel très utile appelé **launchpad-getkeys**. \\ Une fois installé et lancé en ligne de commandes :
   *  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é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 de type « missing GPG » de façon très simple. +  *  Il répare donc les erreurs de type « missing GPG » de façon très simple.
  
-FIXME contient d'autres logiciels, dont **Yad**, qui est **une dépendance de Launchpad-getkeys**.+FIXME contient d'autres logiciels, dont **[[yad_yet_another_dialog|Yad (Yet Another Dialog)]]**, [[xclip|XClip]] et [[ppa#PPA-Purge : désinstaller un paquet automatiquement et proprement|PPA-Purge : désinstaller un paquet automatiquement et proprement]] qui sont **des dépendances de Launchpad-getkeys**.
 </note> </note>
 Pour le faire de de façon graphique, procéder comme suit: 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|dépôt de launchpad-getkeys]], cliquer sur //Technical details about this PPA//.   * Sur la page web de l'archive, donc pour l' exemple [[https://launchpad.net/~nilarimogard/+archive/webupd8|dépôt de launchpad-getkeys]], cliquer sur //Technical details about this PPA//.
-  * Un espace de texte est déroulé, cliquer sur le code inscrit sous //Signing key//+  * 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 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é...//.   * 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.  +  * 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|« How do I fix the GPG error “NO_PUBKEY”? »]] —{ « Comment corriger une erreur GPG "AUCUNE CLÉ PUBLIQUE" » } ; source : forum AskUbuntu.com ; auteur : Agmenor ; 13 novembre 2010.+Les captures d'écrans associées à cette manipulation peuvent être trouvées sur : \\ **(en)** [[http://askubuntu.com/questions/13065/how-do-i-fix-the-gpg-error-no-pubkey-without-terminal#13088|« How do I fix the GPG error “NO_PUBKEY”? »]] —{ « Comment corriger une erreur GPG "AUCUNE CLÉ PUBLIQUE" » } ; source : forum AskUbuntu.com ; auteur : Agmenor ; 13 novembre 2010.
  
-=====Si malgré tout le problème persiste=====+**One Lign installer.** 
 +<note tip>sudo add-apt-repository ppa:webupd8team/y-ppa-manager && sudo apt update 
 +sudo apt install launchpad-getkeys && sudo launchpad-getkeys</note> 
 + 
 + 
 +===== Si malgré tout le problème persiste =====
  
 Commencez par forcer les mises à jour sans authentification, pour être sûr de tout avoir. Commencez par forcer les mises à jour sans authentification, pour être sûr de tout avoir.
-<code>sudo apt update && sudo apt-get -yf --allow-unauthenticated upgrade </code>+<code bash>sudo apt update && sudo apt-get -yf --allow-unauthenticated upgrade </code>
  
 sauvegardez vos clés .gpg actuelles, au cas où ! sauvegardez vos clés .gpg actuelles, au cas où !
Ligne 129: Ligne 155:
 Faites un dossier où mettre ça en attendant : Faites un dossier où mettre ça en attendant :
  
-<code> mkdir ~/gpg-backups </code>+<code bash> mkdir ~/gpg-backups </code>
  
 Virez tout /etc/apt/trusted.gpg.d/ et /etc/apt/trusted.gpg dans le dossier précédemment créé : Virez tout /etc/apt/trusted.gpg.d/ et /etc/apt/trusted.gpg dans le dossier précédemment créé :
  
-<code>sudo mv /etc/apt/trusted.gpg.d/*.* ~/gpg-backups/+<code bash>sudo mv /etc/apt/trusted.gpg.d/*.* ~/gpg-backups/
 sudo mv /etc/apt/trusted.gpg ~/gpg-backups/ </code> sudo mv /etc/apt/trusted.gpg ~/gpg-backups/ </code>
  
 Installez le gestionnaire / réparateur de PPA [[yppamanager|y-ppa-manager]] : Installez le gestionnaire / réparateur de PPA [[yppamanager|y-ppa-manager]] :
-<code> sudo add-apt-repository ppa:webupd8team/y-ppa-manager && sudo apt-get update && sudo apt-get install -y y-ppa-manager</code>+<code bash> sudo add-apt-repository ppa:webupd8team/y-ppa-manager && sudo apt update && sudo apt install -y y-ppa-manager</code>
  
 Vous pouvez le lancer en ligne de commande pour voir ses sorties : Vous pouvez le lancer en ligne de commande pour voir ses sorties :
-<code>y-ppa-manager</code>+<code bash>y-ppa-manager</code>
 ou simplement par son lanceur graphique normal. 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.  +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).+Soyez patient lors de la sélection d'une 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). 
 + 
 +=====Exporter ses clés de ppa===== 
 +Il peut être souhaitable d'exporter ses clés de ppa pour une utilisation sur un ordinateur hors-ligne par exemple, pour cela utiliser la commande : 
 +<code>sudo apt-key exportall >nom-de-votre-clé-unifiée.asc</code> 
 +Cette commande créera un fichier avec contenant toutes les clés utilisées dans le système. 
 +=====Obtenir une clé pour un usage local (sans internet)===== 
 +Pour obtenir un fichier gpg utilisable sans internet, rendez-vous sur [[https://keyserver.ubuntu.com/|le serveur de clé Ubuntu]], dans le champs "Search string", entrez **0xnuméro-de-votre-clé**, le numéro de votre clé correspond à l'erreur apt que vous avez rencontrée lorsque vous avez recharger la liste des paquets. Cliquez sur le lien après **pub** copiez le contenu de la page dans un fichier en lui donnnannt le nom de votre choix avec l'extension ''gpg''
 +Une fois cela fait, entrez la clé manuellement avec la commande : 
 +<code>sudo apt-key add /chemin/vers/votre/clé/votre-clé.gpg</code> 
 +Ou encore plus simplement avec la commande : 
 +<code>wget -O- "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xvotre_n°_de_clé" >votre-clé.gpg</code> 
 +===== Commande apt-key obsolète ===== 
 + 
 +Toutes les options de cette commande sont devenues obsolètes avec la version 22.04 à l'exception de **del** 
 +<code> man apt-key 
 +NAME 
 +       apt-key - Deprecated APT key management utility 
 +DESCRIPTION 
 +       Use of apt-key is deprecated, except for the use of apt-key del in maintainer scripts to remove existing keys from the main keyring. 
 +       If such usage of apt-key is desired the additional installation of the GNU Privacy Guard suite (packaged in gnupg) is required.</code> 
 + 
 +Exemple de codification incorrecte 
 + <code>wget -qO- https://myrepo.example/myrepo.asc | sudo apt-key add - </code> 
 +La bonne codification devient  
 +<code> wget -qO- https://myrepo.example/myrepo.asc | sudo tee /etc/apt/trusted.gpg.d/myrepo.asc </code> 
 + 
  
----- 
-Contributeurs : [[utilisateurs:Daëavelwyn]], [[utilisateurs:Mysteroid]], [[utilisateurs:BeAvEr]] (brève peaufination de la documentation), [[utilisateurs:Agmenor]] (partie PPA), [[utilisateur:Jau]].