Cómo proceder en caso de falla de verificación de firma package.el

30

Acabo de intentar instalar ascii-art-to-unicodedesde el repositorio de GNU ( http://elpa.gnu.org/ ) a través de list-packages. Obtuve el siguiente error:

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

Estoy usando cask / pallet para administrar mis paquetes; ¿hay alguna configuración que me perdí? Algunos cambios recientes a elpa?

Estoy usando una versión preliminar de emacs 24.4.

Tom Regner
fuente
1
Tuve un problema similar hoy actualizando org-mode desde elpa (aunque usé package.el). Podría ser un problema temporal con sus servidores.
Malabarba

Respuestas:

13
  1. establecido package-check-signatureennil
  2. descargue el paquete gnu-elpa-keyring-updatey ejecute la función con el mismo nombre.
  3. restablecer package-check-signatureal valor predeterminado 'allow-unsigned`

Esto funcionó para mí.

joe_maya
fuente
2
No debería ser necesario ejecutar explícitamente la función: instalar el paquete debería ser suficiente porque debería ejecutar la función automáticamente.
Stefan
Ahh ok. Es difícil probarlo ahora que funciona, pero creo que tienes razón.
joe_maya
14

FWIW: tuve este problema con la firma org-20140407.tar.sig. Al igual que el paquete de firma de verificación de Sigma es / fue allow-unsigned .

Cambié el valor del paquete-verificación-firma a cero y el problema se resolvió.

Nelson Ingersoll
fuente
¡Gracias! Nunca adivinaría que "permitir-sin firmar" no significa lo que se supone que significa ...
avp
2
Si lo configura en cero, asegúrese de acceder al elpa.gnu.orgrepositorio a través de HTTPS, de lo contrario, se abrirá a ataques de seguridad fáciles.
Stefan
7

Si intenta instalar el paquete gnu-elpa-keyring-update(que parece tener el propósito de actualizar las claves utilizadas por el administrador de paquetes), verá en su descripción que puede hacer:

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

en la línea de comandos para obtener nuevas claves manualmente. Para asegurarse de que está solicitando la clave correcta ( 066DAFCB81E42C40en el ejemplo anterior), verifique el mensaje de error que emacs le brinda cuando intenta instalar cualquier paquete.

Johan
fuente
4

Parece que la clave utilizada para firmar este paquete (474F05837FBDEF9B) no está publicada (por lo tanto, no se puede firmar, por lo tanto, no se puede confiar). Pero parece que package.el se supone que falla con gracia (por ahora) en tales casos:

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

Entonces, me pregunto si por alguna razón su valor de package-check-signaturees diferente al valor predeterminado de allow-unsigned?

Sigma
fuente
package-check-signaturees allow-unsigned; eso deja el epg-signature-status- hmm.
Tom Regner
sig=[cl-struct-epg-signature bad 474F05837FBDEF9B nil nil nil nil nil nil nil nil nil] status=bad- Tenga en cuenta que el problema todavía está presente.
sds
allow-unsignedsignifica permitir la instalación de paquetes que no están firmados, a diferencia de los paquetes que están firmados pero cuya firma no puede verificar. Esto se usa para que pueda instalar desde archivos ELPA que no firman sus paquetes (MELPA fue así la última vez que lo verifiqué).
Stefan
1

Alternativamente, puede actualizar a un emacs más nuevo, por ejemplo, en Ubuntu:

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

obtener la clave puglic con:

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

Atención: ¡ tu versión podría ser una clave diferente!

sdhd
fuente
1

Las respuestas aquí son un poco anticuadas. Este problema parece haberse solucionado a partir de emacs 26.3.

Parthasarathy de Arvind
fuente
0

La configuración package-check-signatureen nillugar de la predeterminada me allow-unsignedarregló esto.

Fedora 29, GNU Emacs 26.2 (compilación 1, x86_64-redhat-linux-gnu, GTK + Versión 3.24.8) del 30/04/2019

P. Hawkins
fuente