Как продолжить на провале проверки подписи package.el

30

Я только что попытался установить ascii-art-to-unicodeиз репозитория GNU ( http://elpa.gnu.org/ ) через list-packages. Я получаю следующую ошибку:

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

Я использую бочку / паллету для управления своими пакетами; Есть ли какие-то настройки, которые я пропустил? Некоторые недавние изменения в elpa?

Я использую предварительную версию Emacs 24.4.

Том Регнер
источник
1
У меня была похожая проблема сегодня при обновлении org-mode из elpa (хотя я использовал package.el). Может быть временная проблема с их серверами.
Малабарба

Ответы:

13
  1. установить package-check-signatureнаnil
  2. скачайте пакет gnu-elpa-keyring-updateи запустите функцию с тем же именем.
  3. сброс package-check-signatureк значению по умолчанию 'allow-unsigned`

Это сработало для меня.

joe_maya
источник
2
Не должно быть необходимости явно запускать функцию: достаточно установить пакет, потому что он должен запускать функцию автоматически.
Стефан,
О, хорошо. Трудно проверить это сейчас, когда это работает, но я думаю, что вы правы.
joe_maya
14

FWIW - у меня была эта проблема с подписью org-20140407.tar.sig. Как подпись пакета-проверки сигмы / была разрешена без подписи .

Я изменил значение package-check-signature на nil, и проблема была решена.

Нельсон Ингерсолл
источник
Благодарность! Я бы никогда не догадался, что «allow-unsigned» не означает, что он должен означать ...
AVP
2
Если вы установите ноль, убедитесь, что вы получаете доступ к elpa.gnu.orgхранилищу через HTTPS, иначе вы открываете себя для простых атак безопасности.
Стефан
7

Если вы попытаетесь установить пакет gnu-elpa-keyring-update(который, по-видимому, имеет целью обновить ключи, используемые менеджером пакетов), вы увидите в его описании, что вы можете сделать:

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

в командной строке, чтобы получить новые ключи вручную. Чтобы убедиться, что вы запрашиваете правильный ключ ( 066DAFCB81E42C40в приведенном выше примере), проверьте сообщение об ошибке, которое выдает emacs при попытке установить какой-либо пакет.

Johan
источник
4

Похоже, что ключ, используемый для подписи этого пакета (474F05837FBDEF9B), действительно не опубликован (поэтому не может быть подписан, поэтому не может быть доверенным). Но может показаться, что package.el должен завершиться неудачно (пока) в таких случаях:

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

Так что мне интересно, если по какой-то причине ваше значение package-check-signatureотличается от значения по умолчанию allow-unsigned?

Сигма
источник
package-check-signatureесть allow-unsigned; что оставляет epg-signature-status- хм.
Том Регнер,
sig=[cl-struct-epg-signature bad 474F05837FBDEF9B nil nil nil nil nil nil nil nil nil] status=bad- обратите внимание, что проблема все еще присутствует.
sds
allow-unsignedозначает разрешить установку пакетов, которые не подписаны, в отличие от пакетов, которые подписаны, но подпись которых вы не можете проверить. Это используется для того, чтобы вы могли устанавливать из архивов ELPA, которые не подписывают свои пакеты (MELPA был таким, как я проверял в прошлый раз)
Стефан
1

В качестве альтернативы вы можете перейти на более новый emacs, например, на Ubuntu:

sudo add-apt-repository ppa:ubuntu-elisp/ppa
sudo apt-get update
sudo apt-get install emacs-snapshot
Serv-вкл
источник
1

получить ключ puglic с помощью:

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

Внимание: ваша версия может быть другим ключом!

SDHD
источник
1

Ответы здесь немного устарели. Эта проблема, кажется, была исправлена ​​в emacs 26.3.

Арвинд Партхасаратхи
источник
0

Установка package-check-signatureдля nilвместо значения по умолчанию allow-unsignedэто исправил для меня.

Fedora 29, GNU Emacs 26.2 (сборка 1, x86_64-redhat-linux-gnu, GTK + версия 3.24.8) от 2019-04-30

П. Хокинс
источник