为什么签名的 deb 包在复制到我的私人 deb 仓库时会显示它们未经身份验证?

为什么签名的 deb 包在复制到我的私人 deb 仓库时会显示它们未经身份验证?

快速版本

我已经设置了一个私有 deb 存储库并将一些已签名的 deb 包复制到其中。我已经在本地安装了签名密钥。但是当我尝试从存储库安装时,我收到此警告:

WARNING: The following packages cannot be authenticated!

手动安装时,我可以直接按,y但我想使用 puppet 自动安装这些包,但失败了。

那么问题是什么?我需要用我控制的密钥重新签发软件包吗?有没有更好的方法可以确保我安装了特定版本的 Puppet?

更多细节

我已经收到来自puppet debian 仓库-http://apt.puppetlabs.com/我只是从(对于 lucid)复制了这个包此目录

然后使用针对每个存储库运行以下命令的脚本来更新存储库:

cd /var/www/html/apt/ubuntu/lucid
dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz
dpkg-scansources sources /dev/null | gzip -9c > sources/Sources.gz

我已经在客户端安装了签名密钥。

$ sudo apt-key list
/etc/apt/trusted.gpg
--------------------
...
pub   4096R/4BD6EC30 2010-07-10 [expires: 2016-07-08]
uid                  Puppet Labs Release Key (Puppet Labs Release Key) <[email protected]>
...

这样做的原因是我希望所有 Puppet 客户端都是同一版本。因此所有机器都应该使用以下 pin 从我的存储库获取软件包/etc/apt/preferences.d/puppet

Package: puppet puppet-common facter
Pin: origin deb.example.org
Pin-Priority: 1001

(我们目前正在使用 puppet 2.6.x,所以我需要优先级 1001 来将精确客户端从 2.7.x 降级)。

我读过持有包裹但这并不能帮助我更改软件包版本。

欢迎一切建议。

答案1

您确定软件包已签名吗?我不确定,但我猜应该有适当的签名文件。我们正在对整个存储库进行签名,因此整个树只有一个签名,我们让 reprepro 为我们完成此操作。

相关内容