Bagaimana cara melanjutkan kegagalan tanda tangan package.el

29

Saya baru saja mencoba menginstal ascii-art-to-unicodedari repositori gnu ( http://elpa.gnu.org/ ) via list-packages. Saya mendapatkan kesalahan berikut:

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

Saya menggunakan tong / palet untuk mengelola paket saya; apakah ada beberapa pengaturan yang saya lewatkan? Beberapa perubahan terbaru untuk elpa?

Saya menggunakan emacs 24.4 pra-rilis.

Tom Regner
sumber
1
Saya memiliki masalah yang sama hari ini memperbarui mode-org dari elpa (meskipun saya menggunakan package.el). Mungkin masalah sementara dengan server mereka.
Malabarba

Jawaban:

10
  1. diatur package-check-signaturekenil
  2. unduh paketnya gnu-elpa-keyring-updatedan jalankan fungsinya dengan nama yang sama.
  3. atur ulang package-check-signatureke nilai default 'allow-unsigned`

Ini berhasil untuk saya.

joe_maya
sumber
1
Seharusnya tidak perlu untuk menjalankan fungsi secara eksplisit: menginstal paket harus memadai karena harus menjalankan fungsi untuk Anda secara otomatis.
Stefan
Ahh ok. Sulit untuk mengujinya sekarang, tetapi saya pikir Anda benar.
joe_maya
14

FWIW - Saya memiliki masalah ini dengan tanda tangan org-20140407.tar.sig. Seperti paket-cek-tanda tangan Sigma adalah / diizinkan-unsigned .

Saya mengubah nilai tanda tangan paket-cek menjadi nihil dan masalahnya teratasi.

Nelson Ingersoll
sumber
Terima kasih! Saya tidak akan pernah menebak bahwa "boleh-tidak ditandatangani" tidak berarti apa artinya ...
avp
2
Jika Anda mengaturnya menjadi nol, pastikan Anda mengakses elpa.gnu.orgrepositori melalui HTTPS, jika tidak, Anda membuka diri terhadap serangan keamanan yang mudah.
Stefan
6

Jika Anda mencoba menginstal paket gnu-elpa-keyring-update(yang tampaknya memiliki tujuan memperbarui kunci yang digunakan oleh manajer paket), Anda akan melihat dalam uraian yang dapat Anda lakukan:

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

pada commandline untuk mendapatkan kunci baru secara manual. Untuk memastikan Anda meminta kunci yang benar ( 066DAFCB81E42C40dalam contoh di atas), periksa pesan kesalahan yang diberikan emacs saat Anda mencoba menginstal paket apa pun.

Johan
sumber
4

Tampaknya kunci yang digunakan untuk menandatangani paket ini (474F05837FBDEF9B) memang tidak dipublikasikan (oleh karena itu tidak dapat ditandatangani, oleh karena itu tidak dapat dipercaya). Tetapi tampaknya package.el seharusnya gagal dengan anggun (untuk saat ini) dalam kasus-kasus seperti ini:

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

Jadi saya ingin tahu apakah karena alasan tertentu nilai Anda package-check-signatureberbeda dari nilai standarnya allow-unsigned?

Sigma
sumber
package-check-signatureadalah allow-unsigned; yang meninggalkan epg-signature-status- hmm.
Tom Regner
sig=[cl-struct-epg-signature bad 474F05837FBDEF9B nil nil nil nil nil nil nil nil nil] status=bad- perhatikan bahwa masalahnya masih ada.
sds
allow-unsignedberarti mengizinkan pemasangan paket yang tidak ditandatangani, sebagai lawan dari paket yang ditandatangani tetapi tanda tangannya Anda tidak dapat memverifikasi. Ini digunakan agar Anda dapat menginstal dari arsip ELPA yang tidak menandatangani paket-paket mereka (MELPA seperti itu terakhir kali saya periksa).
Stefan
1

Atau, Anda dapat meningkatkan ke emacs yang lebih baru, misalnya di Ubuntu:

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

dapatkan kunci puglic dengan:

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

Perhatian: versi Anda bisa menjadi kunci yang berbeda!

sdhd
sumber
1

Jawabannya di sini sedikit tertanggal. Masalah ini tampaknya telah diperbaiki pada emacs 26.3.

Arvind Parthasarathy
sumber
0

Pengaturan package-check-signatureuntuk nilbukannya allow-unsignedmemperbaiki ini untuk saya.

Fedora 29, GNU Emacs 26.2 (build 1, x86_64-redhat-linux-gnu, GTK + Versi 3.24.8) dari 2019-04-30

P. Hawkins
sumber