Comment corriger l'erreur GPG «NO_PUBKEY»?

364

J'ai ajouté des référentiels supplémentaires avec le programme Sources de logiciels. Mais lorsque je recharge la base de données de paquets, j'obtiens une erreur semblable à celle-ci:

W: erreur GPG: http://ppa.launchpad.net trusty InRelease: les signatures suivantes n'ont pas pu être vérifiées car la clé publique n'est pas disponible: NO_PUBKEY 8BAF9A6F

Je sais que je peux le réparer en utilisant apt-keyun terminal, selon la documentation officielle d'Ubuntu. Mais j'aurais aimé le faire graphiquement. Y a-t-il un moyen de faire cela sans utiliser de terminal?

Agmenor
la source
'Un moyen pour'? Curieux de voir ce que vous entendiez par là.
Michael Scheper
1
Vous pouvez vérifier ce fil SO pour solution. Lien vers un site connexe
Aniket Thakur,
@MichaelScheper 'Y a-t-il un moyen de ne pas ouvrir un terminal?' = ~ 'Y a-t-il un moyen de le faire sans terminal?'
Wilf
@ Wilf: Oh! Je ne parle pas de grammaire, mais cela m’a confondu. D'après la référence que je viens de cocher, «signifie» est un nom singulier, et celui que vous vouliez dire. dictionary.cambridge.org/dictionary/english/means Mais si vous et Agmentor utilisez une variante de l'anglais où la grammaire est correcte, j'aimerais bien voir une référence à celle-ci, simplement parce que je suis intéressé par ce genre de chose. ☺
Michael Scheper

Réponses:

211

Le moyen le plus simple, et de loin, de gérer cela maintenant est avec Y-PPA-Manager (qui intègre maintenant le launchpad-getkeysscript avec une interface graphique).

  1. Pour l'installer, ajoutez d'abord le référentiel webupd8 pour ce programme:

    sudo add-apt-repository ppa:webupd8team/y-ppa-manager
    
  2. Mettez à jour votre liste de logiciels et installez Y-PPA-Manager:

    sudo apt-get update
    sudo apt-get install y-ppa-manager
    
  3. Exécutez y-ppa-manager (tapez, y-ppa-managerpuis appuyez sur la touche Entrée).

  4. Lorsque la fenêtre principale de y-ppa-manager apparaît, cliquez sur "Avancé".

  5. Dans la liste des tâches avancées, sélectionnez "Essayer d'importer toutes les clés GPG manquantes", puis cliquez sur OK.

    Vous avez terminé! Comme le dialogue d'avertissement l'indique lorsque vous démarrez l'opération, cela peut prendre un certain temps (environ 2 minutes pour moi) en fonction du nombre de PPA que vous avez et de la vitesse de votre connexion.

monotasker
la source
18
Pas vraiment utile sur un serveur web, car cela installe X11. N'utilisez pas cette méthode si vous utilisez une édition de serveur, vérifiez la réponse de karthick87!
Goncalotomas
2
Cela permet-il de vérifier les clés importées ou bien importez-vous tout simplement à l'aveuglette (et faites-vous donc confiance à tous ceux qui possèdent un PPA)?
Paŭlo Ebermann
2
Vous importez (et faites confiance) les clés de chaque PPA que vous avez ajouté à votre système. L'hypothèse est que vous faites confiance à ces PPA et les avez vérifiées avant de les ajouter via apt.
monotasker
6
Cette réponse est de loin plus facile et nécessite en réalité moins de commandes que cette réponse "graphique".
Jpaugh
1
Mais la question demandait une méthode graphique.
monotasker
559

Exécuter les commandes suivantes dans le terminal

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <PUBKEY>

<PUBKEY>est votre clé publique manquante pour le référentiel, par exemple 8BAF9A6F.

Puis mettre à jour

sudo apt-get update

MÉTHODE ALTERNATIVE:

sudo gpg --keyserver pgpkeys.mit.edu --recv-key  <PUBKEY>
sudo gpg -a --export <PUBKEY> | sudo apt-key add -
sudo apt-get update

Notez que lorsque vous importez une clé telle que celle-ci en utilisant, apt-keyvous indiquez au système que vous faites confiance à la clé que vous importez pour signer le logiciel que votre système utilisera. Ne le faites pas sauf si vous êtes sûr que la clé est vraiment la clé du distributeur de paquets.

karthick87
la source
2
@ Naruto C'est normal. Cela signifie que la liste n'a pas changé sur le serveur.
ζ--
9
Vous pouvez simplement passer la NO_PUBKEYvaleur comme paramètre de clé. par exemple erreur GPG [...] NO_PUBKEY 3766223989993A70 => sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3766223989993A70
SMMousavi
23
8BAF9A6F <- Où avez-vous obtenu ce numéro?
Olivier Lalonde
13
Le nombre 8BAF9 ... est ce que vous voyez dans l'erreur d'origine. Ce serait quelque chose comme NO_PUBKEY 8BAF ...
Alex
9
Si quelqu'un manipulait des données entre moi et le référentiel, et substituait des éléments qu'ils avaient signés, cela me conduirait simplement à ajouter la clé utilisée, plus ou moins aveuglément. Alors, quel est le processus pour vérifier que la clé est la bonne?
mc0e
43

Cela se produit lorsque vous ne possédez pas de clé publique appropriée pour un référentiel.

Pour résoudre ce problème, utilisez cette commande:

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 9BDB3D89CE49EC21

qui récupère la clé du serveur de clés Ubuntu. Et puis ceci:

gpg --export --armor 9BDB3D89CE49EC21 | sudo apt-key add -

ce qui ajoute la clé aux clés de confiance apt.

La solution peut être trouvée ici et ici et ici .

Pedram
la source
4
Si le fichier hkp: //keyserver.ubuntu.com ne fonctionne pas, utilisez ce pgpkeys.mit.eduserveur.
RajaRaviVarma
1
Cette réponse a résolu mon problème avec le référentiel Kylin. La méthode de saisie sogou pinyin a ajouté la source à mon /etc/apt/sources.list.d/dossier, mais n’a apparemment pas importé la clé gpg. Bonne réponse, simple et au point, +1!
Sergiy Kolodyazhnyy
1
Merci! Travaillé pour moi pour résoudre le problème du référentiel php.
Akash Agarwal
1
Cette réponse a résolu ma mise à jour pourhttp://ppa.launchpad.net/webupd8team/java/ubuntu xenial InRelease
mvw le
et il est fort possible que vous n’ayez jamais généré la clé pour votre système auparavant. Par conséquent, avant de suivre les étapes ci-dessus, utilisez - gpg --gen-key (références - packaging.ubuntu.com/html/getting-set-up.html )
parasrish
35

Vous devez obtenir et importer la clé.

Pour obtenir la clé d'un PPA, visitez la page Launchpad du PPA. Sur chaque page du PPA du Launchpad, vous trouverez ce lien (2), après avoir cliqué sur 'Détails techniques concernant ce PPA' (1):

image 1

Suivez-le et cliquez sur le lien ID clé (3):

image 2

Enregistrez la page, ceci est votre fichier de clé.


Il est maintenant temps de l'importer:

  • Applications > Software Center,
  • Edit > Software sources...,
  • Tapez votre mot de passe,
  • Allez sur l' Authenticationonglet et cliquez sur Import Key File..., enfin
  • Sélectionnez le fichier de clé enregistré et cliquez sur OK.
htorque
la source
1
Ne perdez pas votre temps, voir la réponse ci-dessous.
Felipe
5
@FelipeMicaroniLalli, la question était de savoir comment ajouter une clé publique à l'aide de l'interface graphique, et non du terminal. Cette réponse était donc parfaite.
Chris Woods
C'est beaucoup plus facile et rapide maintenant de faire cela avec y-ppa-manager (également une application graphique). Voir ma réponse ci-dessous.
monotasker
1
OK, mais que se passe-t-il si le référentiel n'est pas un ppa d'ubuntu? Par exemple, Intel gère son propre référentiel pour les pilotes de matériel vidéo à download.01.org
mc0e
Grand guide étape par étape, merci beaucoup! vraiment utile pour quelqu'un qui n'a pas réussi à ajouter la clé via apt-key.
Roy Ling
12

apt ne peut gérer que 40 clés dans /etc/apt/trusted.gpg.d. 41 clés et vous obtiendrez l'erreur GPG "aucune clé publique trouvée", même si vous suivez toutes les étapes pour ajouter la ou les clés manquantes.

Vérifiez si ce fichier contient des clés inutilisées provenant de ppa (s) que vous n'utilisez plus. Si tous sont en cours d'utilisation, envisagez de supprimer certains ppa ainsi que les fichiers de clés correspondants dans /etc/apt/trusted.gpg.d.

En outre, en utilisant

sudo apt-key adv

Est considéré comme un risque pour la sécurité et n’est pas recommandé car vous " sapez le concept de sécurité dans son ensemble, car il ne s’agit pas d’un moyen sûr de recevoir des clés pour diverses raisons (comme: hkp est un protocole en texte clair, des clés courtes et même longues peuvent être forgées,… ) ". http://ubuntuforums.org/showthread.php?t=2195579

Je crois que la bonne façon d’ajouter des clés manquantes (par exemple 1ABC2D34EF56GH78) est

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 1ABC2D34EF56GH78
gpg --export --armor 1ABC2D34EF56GH78 | sudo apt-key add -
mchid
la source
1
Je l' ai trouvé plus facile de supprimer simplement toutes les clés de /etc/apt/trusted.gpg.d puis passez à réponse acceptée askubuntu.com/a/386003/284664
JANOT
@ mchid Pouvez-vous citer un document / URL qui parle de cette limite de 41 clés?
SebMa
@SebMa Le lien est posté dans ma réponse et fait référence à un bogue dans Debian affecté par cette limite. Voici un point d' ancrage au poste réel dans le lien qui mentionne ceci: ubuntuforums.org/showthread.php?t=2195579#post_message_12882784 Je ne suis pas sûr si la documentation réelle existe sur cela , mais le nombre 40 peut avoir été utilisé parce que « 40 "traduit" beaucoup "dans de nombreuses langues.
mardi
@SebMa Cependant, la limite existe ou existait au moment de cette réponse et pendant un certain temps également. J'ai personnellement expérimenté cette limite de 41 clés et je l'ai corrigé en supprimant les clés inutilisées pour ajouter une nouvelle clé alors que 40 clés existaient déjà pour éviter cette erreur.
mardi
1
@SebMa no wiki.debian.org/SecureApt
mchid
9

Il y a un minuscule script fourni dans le PPA WebUpd8 que je vais lier en un seul téléchargement .deb afin que vous n'ayez pas à ajouter le PPA complet - qui importe automatiquement toutes les clés GPG manquantes.

Téléchargez et installez Launchpad-getkeys (ignorez la version originale, elle fonctionne avec toutes les versions d’Ubuntu de Karmic à Oneiric). Une fois installé, ouvrez un terminal et tapez:

sudo launchpad-getkeys

Si vous êtes derrière un proxy, les choses sont un peu plus compliquées alors voyez ceci pour plus d'infos

Alin Andrei
la source
1
C'est effectivement ce que je fais maintenant, puisque j'ai vu ce programme présenté sur votre site web. Néanmoins, le but de la question était de savoir comment le faire de manière graphique.
Agmenor
Le script launchpad-getkeys est maintenant intégré au programme Y-PPA-manager. launchpad.net/~webupd8team/+archive/y-ppa-manager
monotasker
5

J'ai rencontré le même problème lors de l'installation de Heroku. Le lien ci-dessous a résolu mon problème -

http://naveenubuntu.blogspot.in/2011/08/fixing-gpg-keys-in-ubuntu.html

Après avoir résolu le NO_PUBKEYproblème, le problème ci-dessous est resté

W: GPG error: xhttp://toolbelt.heroku.com ./ Release: The following signatures were invalid: BADSIG C927EBE00F1B0520 Heroku Release Engineering <[email protected]>

Pour résoudre ce problème, j'ai exécuté les commandes suivantes dans le terminal:

sudo -i  
apt-get clean  
cd /var/lib/apt  
mv lists lists.old  
mkdir -p lists/partial  
apt-get clean  
apt-get update  

Source - Lien pour le résoudre

Dennyac
la source
4

Assurez-vous d'avoir apt-transport-httpsinstallé:

dpkg -s apt-transport-https > /dev/null || bash -c "sudo apt-get update; 
sudo apt-get install apt-transport-https -y" 

Ajouter un référentiel:

curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add - 
echo "deb [arch=amd64] https://repo.skype.com/deb stable main" | sudo tee /etc/apt/sources.list.d/skype-stable.list 

Installez Skype pour Linux:

sudo apt-get update 
sudo apt-get install skypeforlinux -y

Source: https://community.skype.com/t5/Linux/Skype-for-Linux-Beta-signatures-couldn-t-be-ver-be-verified-because-the/td-p/4645756

Eduardo Cuomo
la source
3

Plus généralement, la méthode suivante devrait fonctionner pour chaque référentiel. Tout d’abord, recherchez, avec l’aide éventuelle d’un moteur de recherche, un texte ressemblant à ce qui suit sur le site Web du fournisseur de programme:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.1 (GNU/Linux)
[...]
-----END PGP PUBLIC KEY BLOCK-----

Un tel texte est par exemple affiché sur http://deb.opera.com . Copiez le passage, collez-le dans un fichier vide que vous avez créé sur votre bureau. Cela se traduit par le fichier de clé.

Continuez ensuite avec l'importation de la clé:

  • Applications> Centre de logiciels
  • Édition> Sources de logiciels ..., entrez le mot de passe
  • Authentification, cliquez sur 'Import Key File ...'
  • Sélectionnez le fichier de clé enregistré et cliquez sur 'Ok'.

Vous pouvez maintenant supprimer le fichier de clé créé précédemment.

Agmenor
la source
3

Bien! J'ai finalement trouvé le chemin!

J'ai testé toutes les méthodes pour corriger l' erreur GPG NO_PUBKEY et rien ne fonctionne pour moi.

J'ai supprimé tout le contenu du dossier /etc/apt/trusted.gpg.d

cd /etc/apt/trusted.gpg.d
sudo rm -R *
sudo apt-get update

Et j'utilise la méthode Y-PPA-Manager parce que je suis trop paresseux pour créer manuellement toutes les clés publiques (trop): http://www.unixmen.com/fix-w-gpg-error-no_pubkey-ubuntu/

Lancez sudo apt-get update à nouveau et tout fonctionne enfin très bien maintenant! Réservoirs!

Source basée: article n ° 17 sur https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1263540

NeurOSick
la source
C'était la seule chose qui a fonctionné pour moi aussi. Probablement un fichier de clé corrompu quelque part?
donnek
0

J'ai eu le même problème avec le client Updater de DynDNS.

Il s'avère que c'était juste les clés expirées.

La réinstallation du logiciel (en téléchargeant un nouveau .debdepuis le site Web, puis en utilisant le Centre logiciel pour le réinstaller) a résolu le problème.

Message d'erreur pour référence:

W: GPG error: http://cdn.dyn.com stable/ Release: The following signatures were invalid: KEYEXPIRED 141943.......
Excentrique
la source