自签名包上的 apt 身份验证失败

自签名包上的 apt 身份验证失败

我确实使用“gpg --gen-key”创建了一个 gpg 密钥,下面是清单:

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

我使用以下方法导出公钥:

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

我使用以下方式对 deb 包进行了签名:

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

我可以在同一个控制器上验证签名:

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

我在不同的控制器上导入公钥:

> 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

但是当我验证这个新控制器上的包时,签名是未知的:

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

我必须使用“gpg --import”来实际验证包:

> gpg --import key.pub

然后验证有效:

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

但是当我使用 apt 安装包时出现身份验证错误:

> 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]? 

我不知道为什么:-(

谢谢!

答案1

我想我自己已经找到答案了。易于不检查单个包的身份验证,而只检查发布文件的身份验证。

答案2

请尝试以下操作:

  1. 使用 $ ar vx file.deb 提取 deb 文件的内容

  2. 检查文件 _gpgbuilder 以及数据文件的扩展名是否为 .tar.gz

如果它有一个 .tar.xz,则意味着该包是使用 Ubuntu 上的 dpkg-deb 创建的,它具有默认的压缩类型 xz(检查 dpkg-deb 的手册页上的选项 compress-type/-Z)

dpkg-sig 检查 data.tar.gz(就好像该文件是使用压缩类型 gzip 创建的 - Debian 上的默认行为)。

一个小技巧是更改 dpkg-sig Perl 脚本来验证数据文件是否具有扩展名 .tar.xz

希望对您有所帮助。(我已将其发布在http://ubuntuforums.org/showthread.php?t=2175836

编辑:有人制作了一个不错的补丁http://osdir.com/ml/ubuntu-bugs/2014-07/msg09103.html:)

相关内容