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.


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.


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.


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.


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?


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

1

obtenir la clé puglic avec:

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

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



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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.