Làm thế nào để tiến hành kiểm tra chữ ký pack.el


25

Tôi vừa thử cài đặt ascii-art-to-unicodetừ kho gnu ( http://elpa.gnu.org/ ) qua list-packages. Tôi nhận được lỗi sau đây:

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

Tôi đang sử dụng thùng / pallet để quản lý các gói hàng của mình; Có một số thiết lập tôi đã bỏ lỡ? Một số thay đổi gần đây để elpa?

Tôi đang sử dụng bản phát hành trước 24.4 của emacs.


1
Tôi đã gặp một vấn đề tương tự ngày hôm nay khi cập nhật chế độ org từ elpa (mặc dù tôi đã sử dụng gói.el). Có thể là một vấn đề tạm thời với máy chủ của họ.
Malabarba

Câu trả lời:


7
  1. đặt package-check-signaturethànhnil
  2. tải gói gnu-elpa-keyring-updatevà chạy chức năng có cùng tên.
  3. đặt lại package-check-signaturevề giá trị mặc định 'allow-unsign`

Điều này làm việc cho tôi.


1
Không cần thiết phải chạy chức năng một cách rõ ràng: cài đặt gói phải đủ vì nó sẽ tự động chạy chức năng cho bạn.
Stefan

À, được rồi. Thật khó để kiểm tra nó bây giờ nó hoạt động, nhưng tôi nghĩ bạn đã đúng.
joe_maya

14

FWIW - Tôi gặp vấn đề này với chữ ký org-20140407.tar.sig. Giống như chữ ký kiểm tra gói của Sigma là / đã được cho phép không dấu .

Tôi đã thay đổi giá trị chữ ký kiểm tra gói thành không và vấn đề đã được giải quyết.


Cảm ơn! Tôi sẽ không bao giờ đoán rằng "cho phép không dấu" không có nghĩa là gì ...
avp

2
Nếu bạn đặt nó ở mức 0, hãy đảm bảo bạn truy cập vào elpa.gnu.orgkho lưu trữ thông qua HTTPS, nếu không, bạn sẽ tự mở các cuộc tấn công bảo mật dễ dàng.
Stefan

4

Dường như khóa được sử dụng để ký gói này (474F05837FBDEF9B) thực sự không được công bố (do đó không thể được ký, do đó không thể tin cậy được). Nhưng có vẻ như gói.el được cho là thất bại một cách duyên dáng (hiện tại) trong những trường hợp như vậy:

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

Vì vậy, tôi tự hỏi nếu vì lý do nào đó giá trị của bạn package-check-signaturekhác với giá trị mặc định của nó là allow-unsigned?


package-check-signatureallow-unsigned; rời khỏi epg-signature-status- hmm.
Tom Regner

sig=[cl-struct-epg-signature bad 474F05837FBDEF9B nil nil nil nil nil nil nil nil nil] status=bad- lưu ý rằng vấn đề vẫn còn.
sds

allow-unsignedcó nghĩa là cho phép cài đặt các gói không được ký, trái ngược với các gói được ký nhưng chữ ký của bạn không thể xác minh. Điều này được sử dụng để bạn có thể cài đặt từ kho lưu trữ ELPA không ký các gói của họ (MELPA giống như lần trước tôi đã kiểm tra).
Stefan

4

Nếu bạn cố gắng cài đặt gói gnu-elpa-keyring-update(dường như có mục đích cập nhật các khóa được sử dụng bởi người quản lý gói), bạn sẽ thấy trong mô tả của gói mà bạn có thể làm:

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

trên dòng lệnh để lấy khóa mới bằng tay. Để đảm bảo bạn đang yêu cầu khóa chính xác ( 066DAFCB81E42C40trong ví dụ trên), hãy kiểm tra thông báo lỗi mà emacs cung cấp cho bạn khi bạn cố gắng cài đặt bất kỳ gói nào.


1

Ngoài ra, bạn có thể nâng cấp lên một emacs mới hơn, ví dụ như trên Ubuntu:

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

1

lấy khóa puglic với:

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

Chú ý: phiên bản của bạn có thể là một chìa khóa khác!


0

Thiết package-check-signatuređể nilthay vì mặc định allow-unsignedcố định này đối với tôi.

Fedora 29, GNU Emacs 26.2 (bản dựng 1, x86_64-redhat-linux-gnu, GTK + Phiên bản 3.24.8) của 2019-04-30

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.