So gehen Sie bei einem Fehler bei der Prüfung der package.el-Signatur vor

25

Ich habe gerade versucht, ascii-art-to-unicodeaus dem Gnu-Repository ( http://elpa.gnu.org/ ) über zu installieren list-packages. Ich erhalte folgenden Fehler:

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

Ich verwalte meine Pakete mit Fässern / Paletten. Gibt es ein Setup, das ich verpasst habe? Einige Neuerungen bei elpa?

Ich benutze ein Emacs 24.4 Pre-Release.

Tom Regner
quelle
1
Ich hatte heute ein ähnliches Problem beim Aktualisieren des org-Modus von elpa (obwohl ich package.el verwendet habe). Könnte ein vorübergehendes Problem mit ihren Servern sein.
Malabarba

Antworten:

7
  1. setzen package-check-signatureaufnil
  2. Laden Sie das Paket herunter gnu-elpa-keyring-updateund führen Sie die Funktion mit dem gleichen Namen aus.
  3. package-check-signatureauf den Standardwert "allow-unsigned" zurücksetzen

Das hat bei mir funktioniert.

joe_maya
quelle
1
Es sollte nicht notwendig sein, die Funktion explizit auszuführen: Die Installation des Pakets sollte ausreichen, da die Funktion automatisch für Sie ausgeführt werden soll.
Stefan
Ahh ok. Schwer zu testen, jetzt wo es funktioniert, aber ich denke du hast recht.
Joe_Maya
14

FWIW - Ich hatte dieses Problem mit der Signatur org-20140407.tar.sig. Wie Sigmas Paket-Check-Signatur ist / war erlaubnislos .

Ich habe den Package-Check-Signature- Wert in Null geändert und das Problem wurde behoben.

Nelson Ingersoll
quelle
Vielen Dank! Ich würde nie vermuten, dass "allow-unsigned" nicht bedeutet, was es bedeuten soll ...
23.
2
Wenn Sie den Wert auf Null setzen, stellen Sie sicher, dass Sie elpa.gnu.orgüber HTTPS auf das Repository zugreifen. Andernfalls sind Sie einfachen Sicherheitsangriffen ausgesetzt.
Stefan
4

Es scheint, dass der zum Signieren dieses Pakets verwendete Schlüssel (474F05837FBDEF9B) tatsächlich nicht veröffentlicht wurde (daher nicht signierbar, daher nicht vertrauenswürdig). Es scheint jedoch, dass package.el in folgenden Fällen (vorerst) ordnungsgemäß fehlschlagen soll:

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

Ich frage mich also, ob sich Ihr Wert von aus irgendeinem Grund von package-check-signatureseinem Standardwert von unterscheidet allow-unsigned.

Sigma
quelle
package-check-signatureist allow-unsigned; das lässt die epg-signature-status- hmm.
Tom Regner
sig=[cl-struct-epg-signature bad 474F05837FBDEF9B nil nil nil nil nil nil nil nil nil] status=bad- Beachten Sie, dass das Problem weiterhin besteht.
sds
allow-unsignedbedeutet, die Installation von Paketen zuzulassen, die nicht signiert sind, im Gegensatz zu Paketen, die signiert sind, deren Signatur Sie jedoch nicht überprüfen können. Dies wird verwendet, damit Sie von ELPA-Archiven installieren können, die ihre Pakete nicht signieren (MELPA war das letzte Mal, als ich es überprüft habe).
Stefan
4

Wenn Sie versuchen, das Paket zu installieren gnu-elpa-keyring-update(was den Zweck zu haben scheint, die vom Paketmanager verwendeten Schlüssel zu aktualisieren), sehen Sie in seiner Beschreibung, dass Sie Folgendes tun können:

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

auf der Kommandozeile, um neue Schlüssel manuell zu erhalten. Um sicherzustellen, dass Sie nach dem richtigen Schlüssel fragen ( 066DAFCB81E42C40im obigen Beispiel), überprüfen Sie die Fehlermeldung, die Sie von Emacs erhalten, wenn Sie versuchen, ein Paket zu installieren.

Johan
quelle
1

Alternativ können Sie ein Upgrade auf einen neueren Emac durchführen, z. B. auf Ubuntu:

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

Holen Sie sich den Puglic Key mit:

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

Achtung: Ihre Version könnte ein anderer Schlüssel sein!

SDHD
quelle
0

Das Setzen package-check-signaturevon nilanstelle der Standardeinstellung allow-unsignedbehebt dies für mich.

Fedora 29, GNU Emacs 26.2 (Build 1, x86_64-redhat-linux-gnu, GTK + Version 3.24.8) vom 30.04.2019

P. Hawkins
quelle