如何继续进行package.el签名检查失败


33

我只是尝试通过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
今天,我从elpa更新org-mode时遇到了类似的问题(尽管我使用package.el)。他们的服务器可能只是暂时的问题。
马拉巴巴2014年

Answers:


15
  1. 设置package-check-signaturenil,例如M-: (setq package-check-signature nil) RET
  2. 下载软件包gnu-elpa-keyring-update并运行具有相同名称的功能,例如M-x package-install RET gnu-elpa-keyring-update RET
  3. 重置package-check-signature为默认值“允许无符号”

这对我有用。


2
不必显式运行该功能:安装软件包就足够了,因为它会自动为您运行该功能。
Stefan

好的 现在它很难工作,但是我认为您是对的。
joe_maya19年

14

FWIW-我在签名org-20140407.tar.sig时遇到此问题。就像Sigma的package-check-signature是/是allow-unsigned一样

我将package-check-signature值更改为nil,问题已解决。


谢谢!我永远不会猜到“允许无符号”并不意味着它的意思……
avp

2
如果将其设置为nil,请确保elpa.gnu.org通过HTTPS 访问存储库,否则您将容易受到安全攻击。
Stefan

8

如果您尝试安装软件包gnu-elpa-keyring-update(似乎是为了更新软件包管理器使用的密钥),您将在其说明中看到可以执行的操作:

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

在命令行上手动获取新密钥。为了确保您要求输入正确的密钥(066DAFCB81E42C40在上面的示例中),请在尝试安装任何软件包时检查emacs给出的错误消息。


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-signatureallow-unsigned; 留下epg-signature-status-嗯。
Tom Regner 2014年

sig=[cl-struct-epg-signature bad 474F05837FBDEF9B nil nil nil nil nil nil nil nil nil] status=bad-请注意,问题仍然存在。
2016年

allow-unsigned意味着允许安装未签名的软件包,与已签名但您无法验证其签名的软件包相对。使用它是为了从不签名软件包的ELPA存档安装(MELPA就像我上次检查的那样)。
Stefan

1

或者,您可以升级到较新的emacs,例如在Ubuntu上:

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

1

通过以下方式获取公共钥匙:

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

注意: 您的版本可能是其他密钥!



0

设置package-check-signaturenil而不是默认值可以allow-unsigned解决此问题。

Fedora 29,GNU Emacs 26.2(内部版本1,x86_64-redhat-linux-gnu,GTK +版本3.24.8)的2019-04-30

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.