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édentes Révision précédente
Prochaine révision
Révision précédente
apt-key [Le 21/03/2011, 22:51]
89.83.48.92 typo
apt-key [Le 06/10/2022, 10:15] (Version actuelle)
90.102.43.180 [Commande apt-key obsolète] missing space
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 [[:​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>​
  
-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 : +Pour pallier ce problème il vous suffit ​de saisir dans un [[:terminal]] la [[:commande_shell|commande]] suivante :
- +
- +
-<note warning>​W:​ GPG error: http://​ppa.launchpad.net jaunty ReleaseThe following signatures couldn'​t be verified because the public key is not availableNO_PUBKEY votre_n°_de_clé</​note>​+
  
-Pour pallier ce problème il vous suffit de faire : +<​code ​bash>sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com votre_n°_de_clé</​code>​
- +
-<​code>​sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com votre_n°_de_clé</​code>​+
 ou bien : ou bien :
-<​code>​sudo apt-get install add-apt-key && sudo add-apt-key votre_n°_de_clé</​code>​+<​code ​bash>sudo apt-get install add-apt-key && sudo add-apt-key votre_n°_de_clé</​code
 +<note tip>​Encore plus simple ! Cette ligne de commande régénère les clés GPG manquantes 
 +<​code>​sudo apt-get update 2>&1 | sed -ne '​s?​^.*NO_PUBKEY ??p' | xargs -r -- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys</​code></​note>
  
-Si le port hkp (11371/tcp) est filtré (par exemple au travail), passer en http :+===== Port HKP filtré par un firewall ==== 
 +Si le port hkp (11371/tcp) est filtré ​par un firewall ​(par exemple au travail), passer en http : 
 +<​code>​sudo add-apt-key -k hkp://​keyserver.ubuntu.com:​80 votre_n°_de_clé</​code>​
  
-<​code>​sudo add-apt-key ​-k http://keys.gnupg.net votre_n°_de_clé</​code>​ +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**  
-ou bien :+<​file>​KEYSERVER=hkp://keyserver.ubuntu.com:80</file> 
 +puis de relancer la commande de la maniere suivante : 
 +<code>sudo add-apt-key votre_n°_de_cle</​code>​ 
 + 
 +Il est également possible de saisir:
 <​code>​wget -O- "​http://​keyserver.ubuntu.com/​pks/​lookup?​op=get&​search=0xvotre_n°_de_clé"​ | sudo apt-key add -</​code>​ <​code>​wget -O- "​http://​keyserver.ubuntu.com/​pks/​lookup?​op=get&​search=0xvotre_n°_de_clé"​ | sudo apt-key add -</​code>​
  
- +<note help>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 
-<note help>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 ​:</​note>​ +<​code>​gpg --keyserver keyserver.ubuntu.com --recv-keys  ​votre_n°_de_clé
- +
-<​code>​gpg --keyserver keyserver.ubuntu.com --recv-key  ​votre_n°_de_clé+
 gpg -a --export votre_n°_de_clé | sudo apt-key add -</​code>​ gpg -a --export votre_n°_de_clé | sudo apt-key add -</​code>​
 +</​note>​
  
- +Plus simplement, vous pouvez aussi vous créer un petit script que vous appellerez pour ajouter vos clés:\\
-Plus simplement, vous pouvez aussi vous créer un petit script que vous appellerez pour ajouter vos clés :+
 dans votre terminal, tapez : dans votre terminal, tapez :
 <​code>​ <​code>​
-gedit apt-gpg-key+touch apt-gpg-key && xdg-open ​apt-gpg-key
 </​code>​ </​code>​
  
-puis, dans gedit, copiez le code suivant : +puis, dans l’éditeur de texte, copiez le code suivant : 
-<code>+<file>
 #!/bin/bash #!/bin/bash
  
 gpg --keyserver keyserver.ubuntu.com --recv-keys $1 gpg --keyserver keyserver.ubuntu.com --recv-keys $1
 gpg --armor --export $1 | sudo apt-key add - gpg --armor --export $1 | sudo apt-key add -
-</code>+</file>
  
-Enregistrez le fichier puis de nouveau dans votre terminal, rendez-le exécutable en faisant :+Enregistrez le fichier puis de nouveau dans votre terminal, rendez-le ​[[:droits|exécutable]] en faisant :
 <​code>​ <​code>​
 chmod +x apt-gpg-key chmod +x apt-gpg-key
Ligne 52: Ligne 55:
 sudo ./​apt-gpg-key votre_n°_de_clé sudo ./​apt-gpg-key votre_n°_de_clé
 </​code>​ </​code>​
 +
 +===== gpg: AVERTISSEMENT:​ le propriétaire du répertoire contenant est peu sûr =====
  
 Si vous obtenez une erreur du type : Si vous obtenez une erreur du type :
Ligne 72: Ligne 77:
 </​code>​ </​code>​
  
-===== Pour une PPA du site launchpad.net =====+===== gpg: le délai d'​attente du serveur de clés a expiré ===== 
 +Si vous obtenez ​une erreur du type : 
 +<​file>​ 
 +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 
 +</​file>​ 
 +  - 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 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|la section « Erreur de serveur de clés »]]. 
 + 
 +===== 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.  
 + 
 +<​note>​ 
 +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 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épare donc les erreurs de type « missing GPG » de façon très simple. 
 + 
 +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>​ 
 +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//. 
 +  * 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 : \\ **(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. 
 + 
 +**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. 
 +<code bash>​sudo apt update && sudo apt-get -yf --allow-unauthenticated upgrade </​code>​ 
 + 
 +sauvegardez vos clés .gpg actuelles, au cas où ! 
 + 
 +Faites un dossier où mettre ça en attendant : 
 + 
 +<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éé : 
 + 
 +<code bash>​sudo mv /​etc/​apt/​trusted.gpg.d/​*.* ~/​gpg-backups/​ 
 +sudo mv /​etc/​apt/​trusted.gpg ~/​gpg-backups/​ </​code>​ 
 + 
 +Installez le gestionnaire / réparateur de PPA [[yppamanager|y-ppa-manager]] : 
 +<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 : 
 +<code bash>​y-ppa-manager</​code>​ 
 +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 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 ​=====
  
-Le site [[https://​launchpad.net|launchpad.net]] est géré par Canonical, la société qui soutient Ubuntu. Il héberge ​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. +Toutes les options ​de cette commande ​sont devenues obsolètes avec la version 22.04 à l'exception de **del** 
-Pour en 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 : +<​code>​ man apt-key 
-<​code>​ppa:​nilarimogard/​webupd8</​code>​ +NAME 
-Cliquer sur '​Ajouter une source de mise à jour'. Le dépôt est alors ajouté mais pas encore authentifié.+       apt-key - Deprecated APT key management utility 
 +DESCRIPTION 
 +       Use of apt-key is deprecatedexcept 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>​
  
-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 [[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).+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>​
  
-Note sur le dépôt '​**ppa:​nilarimogard/​webupd8**'​ proposé en exemple : il 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 : [[utilisateurs:​Daëavelwyn]],​ [[utilisateurs:​Mysteroid]],​ [[utilisateurs:​BeAvEr]] (brève peaufination de la documentation),​ [[utilisateurs:​Agmenor]] (partie PPA). 
  • apt-key.1300744283.txt.gz
  • Dernière modification: Le 21/03/2011, 22:51
  • par 89.83.48.92