Jak postępować w przypadku niepowodzenia sprawdzania podpisu package.el


34

Właśnie próbowałem zainstalować ascii-art-to-unicodez repozytorium GNU ( http://elpa.gnu.org/ ) przez list-packages. Otrzymuję następujący błąd:

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

Używam beczek / palet do zarządzania moimi paczkami; czy brakuje mi konfiguracji? Jakieś ostatnie zmiany w elpa?

Korzystam z wersji wstępnej emacs 24.4.


1
Miałem podobny problem dzisiaj aktualizując tryb org z elpa (chociaż użyłem package.el). Może to być tymczasowy problem z ich serwerami.
Malabarba

Odpowiedzi:


16
  1. ustawiony package-check-signaturena nilnpM-: (setq package-check-signature nil) RET
  2. pobierz pakiet gnu-elpa-keyring-updatei uruchom funkcję o tej samej nazwie, np M-x package-install RET gnu-elpa-keyring-update RET.
  3. zresetować package-check-signaturedo wartości domyślnej „allow-unsigned”

To zadziałało dla mnie.


2
Nie powinno być konieczne jawne uruchomienie funkcji: instalacja pakietu powinna wystarczyć, ponieważ powinna ona automatycznie uruchomić tę funkcję.
Stefan

Ahh ok. Trudno to teraz przetestować, ponieważ działa, ale myślę, że masz rację.
joe_maya

14

FWIW - miałem ten problem z podpisem org-20140407.tar.sig. Podobnie jak podpis Sigma do kontroli paczki jest / był dozwolony-niepodpisany .

Zmieniłem wartość podpisu sprawdzania pakietu na zero i problem został rozwiązany.


Dzięki! Nigdy bym nie zgadł, że
słowo

2
Jeśli ustawisz go na zero, upewnij się, że masz dostęp do elpa.gnu.orgrepozytorium przez HTTPS, w przeciwnym razie otworzysz się na łatwe ataki bezpieczeństwa.
Stefan

10

Jeśli spróbujesz zainstalować pakiet gnu-elpa-keyring-update(co wydaje się mieć na celu aktualizację kluczy używanych przez menedżera pakietów), w jego opisie zobaczysz, że możesz:

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

w wierszu polecenia, aby ręcznie uzyskać nowe klucze. Aby upewnić się, że pytasz o poprawny klucz ( 066DAFCB81E42C40w powyższym przykładzie), sprawdź komunikat o błędzie wyświetlany przez program emacs podczas próby zainstalowania dowolnego pakietu.


4

Wygląda na to, że klucz użyty do podpisania tego pakietu (474F05837FBDEF9B) faktycznie nie został opublikowany (dlatego nie można go podpisać, a zatem nie można mu ufać). Wydaje się jednak, że pakiet.el powinien zawieść w sposób wdzięczny (na razie) w takich przypadkach:

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

Zastanawiam się więc, czy z jakiegoś powodu twoja wartość package-check-signaturejest inna niż wartość domyślna allow-unsigned?


package-check-signaturejest allow-unsigned; która opuszcza epg-signature-status- hmm.
Tom Regner

sig=[cl-struct-epg-signature bad 474F05837FBDEF9B nil nil nil nil nil nil nil nil nil] status=bad- zauważ, że problem nadal występuje.
sds

allow-unsignedoznacza umożliwienie instalacji pakietów, które nie są podpisane, w przeciwieństwie do pakietów, które są podpisane, ale których podpisu nie można zweryfikować. Służy to do instalowania z archiwów ELPA, które nie podpisują swoich pakietów (MELPA było tak, jak podczas ostatniego sprawdzania).
Stefan

1

Alternatywnie, możesz uaktualnić do nowszego emacsa, np. Na Ubuntu:

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

1

zdobądź klucz puglic z:

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

Uwaga: Twoja wersja może być innym kluczem!



0

Ustawienie package-check-signaturedo nilzamiast domyślnego allow-unsignedstałe to dla mnie.

Fedora 29, GNU Emacs 26.2 (build 1, x86_64-redhat-linux-gnu, GTK + wersja 3.24.8) 30.04.2019

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.