Comment procéder en cas d'échec du contrôle de signature package.el

30

J'ai juste essayé d'installer ascii-art-to-unicodedepuis le dépôt gnu ( http://elpa.gnu.org/ ) via list-packages. J'obtiens l'erreur suivante:

package--check-signature: Failed to verify signature 
   ascii-art-to-unicode-1.9.el.sig: ("No public key 
   for 474F05837FBDEF9B created at 2014-09-24T16:20:01+0200 
   using DSA")

J'utilise des fûts / palettes pour gérer mes colis; y a-t-il une configuration que j'ai ratée? Quelques changements récents à elpa?

J'utilise une pré-version d'emacs 24.4.

Tom Regner
la source
1
J'ai eu un problème similaire aujourd'hui en mettant à jour le mode org depuis elpa (bien que j'aie utilisé package.el). Cela pourrait être un problème temporaire avec leurs serveurs.
Malabarba

Réponses:

13
  1. réglé package-check-signaturesurnil
  2. téléchargez le package gnu-elpa-keyring-updateet exécutez la fonction avec le même nom.
  3. réinitialiser package-check-signatureà la valeur par défaut «allow-unsigned»

Cela a fonctionné pour moi.

joe_maya
la source
2
Il ne devrait pas être nécessaire d'exécuter explicitement la fonction: l'installation du package devrait être suffisante car elle devrait exécuter la fonction automatiquement pour vous.
Stefan
Ah d'accord. Difficile de le tester maintenant que cela fonctionne, mais je pense que vous avez raison.
joe_maya
14

FWIW - J'ai eu ce problème avec la signature org-20140407.tar.sig. Comme la signature de vérification de package de Sigma est / était autorisée à ne pas être signée .

J'ai changé la valeur du package-check-signature à nil et le problème a été résolu.

Nelson Ingersoll
la source
Merci! Je ne devinerais jamais que "autoriser non signé" ne veut pas dire ce qu'il est censé signifier ...
avp
2
Si vous le définissez sur zéro, assurez-vous d'accéder au elpa.gnu.orgréférentiel via HTTPS, sinon vous vous ouvrez à des attaques de sécurité faciles.
Stefan
7

Si vous essayez d'installer le package gnu-elpa-keyring-update(qui semble avoir pour but de mettre à jour les clés utilisées par le gestionnaire de package), vous verrez dans sa description que vous pouvez faire:

gpg --homedir ~/.emacs.d/elpa/gnupg --receive-keys 066DAFCB81E42C40

sur la ligne de commande pour obtenir manuellement de nouvelles clés. Pour vous assurer que vous demandez la bonne clé ( 066DAFCB81E42C40dans l'exemple ci-dessus), vérifiez le message d'erreur qu'emacs vous donne lorsque vous essayez d'installer un package.

Johan
la source
4

Il apparaît que la clé utilisée pour signer ce package (474F05837FBDEF9B) n'est en effet pas publiée (ne peut donc pas être signée, donc ne peut pas être approuvée). Mais il semblerait que package.el est censé échouer gracieusement (pour l'instant) dans de tels cas:

;; If package-check-signature is allow-unsigned, don't
;; signal error when we can't verify signature because of
;; missing public key.  Other errors are still treated as
;; fatal (bug#17625).
(unless (and (eq package-check-signature 'allow-unsigned)
             (eq (epg-signature-status sig) 'no-pubkey))
  (setq had-fatal-error t))

Je me demande donc si pour une raison quelconque votre valeur de package-check-signatureest différente de sa valeur par défaut de allow-unsigned?

Sigma
la source
package-check-signatureest allow-unsigned; qui laisse le epg-signature-status- hmm.
Tom Regner
sig=[cl-struct-epg-signature bad 474F05837FBDEF9B nil nil nil nil nil nil nil nil nil] status=bad- notez que le problème est toujours présent.
sds
allow-unsignedsignifie autoriser l'installation de packages non signés, par opposition aux packages signés mais dont vous n'êtes pas en mesure de vérifier la signature. Ceci est utilisé pour que vous puissiez installer à partir des archives ELPA qui ne signent pas leurs packages (MELPA était comme ça la dernière fois que j'ai vérifié).
Stefan
1

Alternativement, vous pouvez passer à un emacs plus récent, par exemple sur Ubuntu:

sudo add-apt-repository ppa:ubuntu-elisp/ppa
sudo apt-get update
sudo apt-get install emacs-snapshot
serv-inc
la source
1

obtenir la clé puglic avec:

gpg2 --homedir ~/.emacs.d/elpa/gnupg --receive-keys 066DAFCB81E42C40

Attention: votre version pourrait être une clé différente!

sdhd
la source
1

Les réponses ici sont un peu datées. Ce problème semble avoir été corrigé depuis emacs 26.3.

Arvind Parthasarathy
la source
0

Réglage sur package-check-signatureau nillieu de la valeur par défautallow-unsigned corrigé cela pour moi.

Fedora 29, GNU Emacs 26.2 (build 1, x86_64-redhat-linux-gnu, GTK + Version 3.24.8) du 2019-04-30

P. Hawkins
la source