Como obter a verificação da fonte do apt-get funcionando?

7

Exemplo (usando o Debian Wheezy):

sudo apt-get source hello

Resultado:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Need to get 705 kB of source archives.
Get:1 http://ftp.us.debian.org/debian/ testing/main hello 2.8-3 (dsc) [1287 B]
Get:2 http://ftp.us.debian.org/debian/ testing/main hello 2.8-3 (tar) [697 kB]
Get:3 http://ftp.us.debian.org/debian/ testing/main hello 2.8-3 (diff) [6598 B]                                                               
Fetched 705 kB in 8s (80.6 kB/s)                                                                                                              
gpgv: keyblock resource '/root/.gnupg/trustedkeys.gpg': file open error
gpgv: Signature made Wed Feb 13 10:30:20 2013 UTC using RSA key ID 9F1B8B32
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on ./hello_2.8-3.dsc
dpkg-source: info: extracting hello in hello-2.8
dpkg-source: info: unpacking hello_2.8.orig.tar.gz
dpkg-source: info: unpacking hello_2.8-3.debian.tar.gz

O pacote dpkg-dev e debian-keyring já está instalado.

Eu tentei executar o apt-get source como usuário, como root, usei "gpg --recv-keys 9F1B8B32" antes como usuário e como root. Nada ajudou a obter as fontes de download verificadas.

Como posso me livrar desse aviso "dpkg-source: warning: failed to verify signature"?

    
por user28464 01.08.2013 / 19:42

4 respostas

9

faça

apt-get install debian-keyring

para instalar todos os chaveiros de desenvolvimento do Debian. Verificaria depois disso.

    
por 01.08.2013 / 20:11
1

É debian-keyring desejado (o arquivo .dsc que está sendo verificado é assinado pelo mantenedor), mas a instalação do debian-keyring ainda deixa algum trabalho a ser feito para fazer gpg considerar as chaves do desenvolvedor ser uma lata de worms, o que é presumivelmente porque o encanamento não é feito como parte da pós-instalação).

Se for único, volte a verificar o .dsc após a obtenção usando:

gpg --keyring /usr/share/keyrings/debian-maintainers.gpg --verify *.dsc

Se você estiver pegando vários, adicione:

keyring /usr/share/keyrings/debian-maintainers.gpg

para o seu ~/.gnupg/gpg.conf ; a partir de então, gpg (e gpgv ) considerarão as chaves do desenvolvedor / mantenedor para verificação de assinatura. (Se você é paranóico, você pode usar /usr/share/keyrings/debian-keyring.gpg , que inclui desenvolvedores completos, mas não mantenedores.)

Nenhuma das abordagens fará com que as chaves sejam consideradas válidas, mas provavelmente é isso que você deseja - se você obteve debian-keyring com uma assinatura do pacote sanely configurada apt-get / aptitude e que foi verificada , você pode ter certeza razoável de que as chaves realmente pertencem aos desenvolvedores / mantenedores.

    
por 17.05.2014 / 18:46
0

O detalhe importante que falta aqui é que você precisa do chaveiro do sid , não do chaveiro do stable , porque apenas o chaveiro do sid carrega todos os desenvolvedores. Observe o /sid na próxima linha:

apt-get install debian-keyring/sid

Para obter sid , você geralmente precisa de uma linha como segue em /etc/apt/source.list :

deb http://http.debian.net/debian/ sid main

(E não se esqueça de apt-get update depois).

Mas cuidado! Se sid estiver no seu sources.list , seu sistema tenderá a se transformar em sid contra sua vontade. Para evitar isso, adicione uma linha a /etc/apt/apt.conf , que se parece com:

APT::Default-Release "stable"; 

(Existem zilhões de outras maneiras de evitar sid , este é o mais fácil que eu conheço.)

Notas:

  • A pista para essa solução foi encontrada no link
  • Antes de encontrar isso, tropecei em milhares de páginas dizendo para você simplesmente buscar a chave que faltava em um servidor de chaves: Nunca faça uma coisa tão estúpida para verificar uma assinatura! Se um MitM puder enviar você é um pacote falso, o mesmo é capaz de enviar uma resposta falsa do servidor de chaves também. Por isso, uma chave extraída de um servidor de chaves é simplesmente uma cobra. (E em um contexto de segurança, acreditar em "serpente" é a coisa mais idiota que você pode fazer.)
por 08.03.2015 / 06:53
0

A partir da linha "gpgv: keyblock resource '/root/.gnupg/trustedkeys.gpg': arquivo abrir erro", você deve estar executando em erro do gpg . No final, apt-get source executa gpg com --no-option switch. Qual falha se nenhum homedir ( ~/.gnupg ) existir. Pode-se remediar isso com: gpg -k . Mais detalhes aqui .

    
por 07.06.2015 / 09:21