Como proceder na falha na verificação da assinatura package.el

29

Eu apenas tentei instalar a ascii-art-to-unicodepartir do repositório gnu ( http://elpa.gnu.org/ ) via list-packages. Estou tendo o erro a seguir:

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

Estou usando o barril / palete para gerenciar meus pacotes; há alguma configuração que eu perdi? Algumas mudanças recentes no elpa?

Estou usando um pré-lançamento do emacs 24.4.

Tom Regner
fonte
1
Hoje tive um problema semelhante ao atualizar o modo org do elpa (embora eu usei o package.el). Pode ser um problema temporário com seus servidores.
Malabarba 25/09

Respostas:

10
  1. definido package-check-signaturecomonil
  2. faça o download do pacote gnu-elpa-keyring-updatee execute a função com o mesmo nome.
  3. redefinir package-check-signaturepara o valor padrão 'allow-unsigned'

Isso funcionou para mim.

joe_maya
fonte
1
Não deve ser necessário executar explicitamente a função: a instalação do pacote deve ser suficiente porque deve executar a função automaticamente.
Stefan
Ahh, certo. Difícil de testar agora que funciona, mas acho que você está certo.
21419
14

FWIW - Eu tive esse problema com a assinatura org-20140407.tar.sig. Como a assinatura de verificação de pacote da Sigma, é / foi permitida a assinatura .

Alterei o valor da assinatura da verificação do pacote para zero e o problema foi resolvido.

Nelson Ingersoll
fonte
Obrigado! Eu nunca iria adivinhar que "permitem-assinado" não significa o que isso quer dizer ...
avp
2
Se você configurá-lo como nulo, certifique-se de acessar o elpa.gnu.orgrepositório via HTTPS, caso contrário, você estará se abrindo para ataques de segurança fáceis.
Stefan
6

Se você tentar instalar o pacote gnu-elpa-keyring-update(que parece ter o objetivo de atualizar as chaves usadas pelo gerenciador de pacotes), verá na descrição que você pode fazer:

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

na linha de comando para obter novas chaves manualmente. Para ter certeza de que você está solicitando a chave correta ( 066DAFCB81E42C40no exemplo acima), verifique a mensagem de erro que o emacs fornece quando você tenta instalar qualquer pacote.

Johan
fonte
4

Parece que a chave usada para assinar este pacote (474F05837FBDEF9B) não está realmente publicada (portanto, não pode ser assinada, portanto, não é confiável). Mas parece que o package.el deve falhar normalmente (por enquanto) nesses casos:

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

Então, eu estou querendo saber se, por algum motivo, seu valor package-check-signatureé diferente do seu valor padrão allow-unsigned?

Sigma
fonte
package-check-signatureé allow-unsigned; isso deixa o epg-signature-status- hmm.
Tom Regner
sig=[cl-struct-epg-signature bad 474F05837FBDEF9B nil nil nil nil nil nil nil nil nil] status=bad- observe que o problema ainda está presente.
sds 02/02
allow-unsignedsignifica permitir a instalação de pacotes que não são assinados, em oposição aos pacotes que são assinados, mas cuja assinatura você não pode verificar. Isso é usado para que você possa instalar a partir de arquivos ELPA que não assinam seus pacotes (o MELPA era como da última vez que verifiquei).
Stefan
1

Como alternativa, você pode atualizar para um emacs mais recente, por exemplo, no Ubuntu:

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

obtenha a chave puglic com:

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

Atenção: sua versão pode ser uma chave diferente!

sdhd
fonte
1

As respostas aqui são um pouco datadas. Esse problema parece ter sido corrigido no emacs 26.3.

Arvind Parthasarathy
fonte
0

Definir package-check-signaturecomo em nilvez do padrão allow-unsignedcorrigiu isso para mim.

Fedora 29, GNU Emacs 26.2 (build 1, x86_64-redhat-linux-gnu, GTK + versão 3.24.8) de 2019-04-30

P. Hawkins
fonte