Come procedere in caso di errore di controllo della firma di package.el


30

Ho appena provato a installare ascii-art-to-unicodedal repository gnu ( http://elpa.gnu.org/ ) tramite list-packages. Ottengo il seguente errore:

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")

Sto usando cask / pallet per gestire i miei pacchetti; c'è qualche setup che mi sono perso? Alcune recenti modifiche a elpa?

Sto usando una pre-release di emacs 24.4.


1
Ho avuto un problema simile oggi aggiornando la modalità org da elpa (anche se ho usato package.el). Potrebbe essere un problema temporaneo con i loro server.
Malabarba,

Risposte:


13
  1. impostato package-check-signaturesunil
  2. scarica il pacchetto gnu-elpa-keyring-updateed esegui la funzione con lo stesso nome.
  3. reimpostare package-check-signaturesul valore predefinito 'allow-unsigned`

Questo ha funzionato per me.


2
Non dovrebbe essere necessario eseguire esplicitamente la funzione: l'installazione del pacchetto dovrebbe essere sufficiente perché dovrebbe eseguire la funzione automaticamente.
Stefan,

Ah ok Difficile testarlo ora che funziona, ma penso che tu abbia ragione.
joe_maya,

14

FWIW - Ho avuto questo problema con la firma org-20140407.tar.sig. Come la firma-pacchetto-assegno-firma di Sigma è / era autorizzata-senza segno .

Ho modificato il valore del pacchetto-controllo-firma in zero e il problema è stato risolto.


Grazie! Non indovinerei mai che "consentire-non firmato" non significa che cosa dovrebbe significare ...
avp

2
Se lo imposti a zero, assicurati di accedere al elpa.gnu.orgrepository tramite HTTPS, altrimenti ti stai aprendo a semplici attacchi alla sicurezza.
Stefan,

7

Se provi a installare il pacchetto gnu-elpa-keyring-update(che sembra avere lo scopo di aggiornare le chiavi utilizzate dal gestore pacchetti), vedrai nella sua descrizione che puoi fare:

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

dalla riga di comando per ottenere manualmente nuove chiavi. Per assicurarti di richiedere la chiave corretta ( 066DAFCB81E42C40nell'esempio sopra), controlla il messaggio di errore che emacs ti dà quando tenti di installare un pacchetto.


4

Sembra che la chiave utilizzata per firmare questo pacchetto (474F05837FBDEF9B) non sia effettivamente pubblicata (quindi non può essere firmata, quindi non ci si può fidare). Ma sembrerebbe che package.el dovrebbe fallire con grazia (per ora) in questi casi:

;; 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))

Quindi mi chiedo se per qualche motivo il tuo valore di package-check-signaturesia diverso dal suo valore predefinito di allow-unsigned?


package-check-signatureè allow-unsigned; che lascia il epg-signature-status- hmm.
Tom Regner,

sig=[cl-struct-epg-signature bad 474F05837FBDEF9B nil nil nil nil nil nil nil nil nil] status=bad- notare che il problema è ancora presente.
sds

allow-unsignedsignifica consentire l'installazione di pacchetti che non sono firmati, al contrario dei pacchetti che sono firmati ma di cui non è possibile verificare la firma. Questo è usato in modo da poter installare dagli archivi ELPA che non firmano i loro pacchetti (MELPA era come l'ultima volta che ho controllato).
Stefan,

1

In alternativa, è possibile eseguire l'aggiornamento a un emacs più recente, ad esempio su Ubuntu:

sudo add-apt-repository ppa:ubuntu-elisp/ppa
sudo apt-get update
sudo apt-get install emacs-snapshot

1

prendi la chiave del pugile con:

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

Attenzione: la tua versione potrebbe essere una chiave diversa!


1

Le risposte qui sono un po 'datate. Questo problema sembra essere stato risolto a partire da emacs 26.3.


0

Impostazione package-check-signatureal nilposto del default allow-unsignedrisolto questo per me.

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.