Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
apt-key [Le 13/12/2017, 12:52] 78.194.2.45 [Pour un PPA du site launchpad.net] |
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 [[: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 : | + | 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> | ||
- | <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 : |
- | 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> |
- | + | ||
- | <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> | ||
===== Port HKP filtré par un firewall ==== | ===== Port HKP filtré par un firewall ==== | ||
Ligne 19: | Ligne 20: | ||
<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 79: | ||
===== 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 96: | ||
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 : \\ **(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. | 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 122: | ||
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]]. |