apt falha de autenticação no pacote auto-assinado

1

Eu criei uma chave gpg usando "gpg --gen-key", aqui está a lista:

> gpg --list-keys
/home/<user>/.gnupg/pubring.gpg
--------------------------------
pub   2048R/99EDE0B7 2013-02-05
uid                  Some Company
sub   2048R/97337D10 2013-02-05

Eu exportei a chave pública usando:

> gpg --output key.pub --armor --export 99EDE0B7

Eu assinei um pacote deb usando:

> dpkg-sig --sign builder -k 99EDE0B7 mypackage.deb

Eu posso verificar a assinatura no mesmo controlador:

> dpkg-sig --verify mypackage.deb 
Processing mypackage.deb...
GOODSIG _gpgbuilder 31C631682D8C1DC833576A283C9A9AA799EDE0B7 1366790488

Eu importo a chave pública em um controlador diferente:

> apt-key add key.pub
OK
> apt-key list
/etc/apt/trusted.gpg
--------------------
pub   2048R/99EDE0B7 2013-02-05
uid                  My Company
sub   2048R/97337D10 2013-02-05

Mas quando eu verificar o pacote neste novo controlador a assinatura é desconhecida:

> dpkg-sig --verify mypackage.deb 
Processing mypackage.deb...
UNKNOWNSIG _gpgbuilder 99EDE0B7

Eu preciso usar "gpg --import" para realmente verificar o pacote:

> gpg --import key.pub

Em seguida, a verificação funciona:

> dpkg-sig --verify mypackage.deb 
Processing mypackage.deb...
GOODSIG _gpgbuilder 980CDF084EC87D4C003E020C4B324EFB85743C26 1366872932

Mas quando uso o apt para instalar o pacote, recebo um erro de autenticação:

> apt-get install mypackage
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  mypackage
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/12.0 kB of archives.
After this operation, 0 B of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
  mypackage
Install these packages without verification [y/N]? 

E eu não consigo descobrir por que: - (

thx!

    
por tombert 24.04.2013 / 14:57

2 respostas

1

Eu acho que eu mesmo descobri. apt não verifica a autenticação em pacotes individuais, mas apenas nos arquivos Release.

    
por tombert 02.05.2013 / 10:40
0

tente o seguinte:

  1. extraia o conteúdo do arquivo deb usando $ ar vx file.deb

  2. verifique o arquivo _gpgbuilder e que o arquivo de dados tem uma extensão .tar.gz

Se tiver um .tar.xz significa que o pacote foi criado usando um dpkg-deb no Ubuntu que possui xz de tipo de compactação padrão (verifique a página man do dpkg-deb na opção tipo de compactação / -Z)

O dpkg-sig checa por data.tar.gz (como se o arquivo tivesse sido criado com compress-type gzip - comportamento padrão no Debian).

Um pequeno hack seria alterar o script Perl do dpkg-sig para verificar se o arquivo de dados tem extensão .tar.xz

Espero que ajude. (Eu publiquei isso no link )

Editar: alguém fez um patch link :)

    
por mjsr 26.08.2014 / 18:26