为什么签名的 deb 包在复制到我的私人 deb 存储库时说它们没有经过身份验证?

Ham*_*ner 5 puppet repository deb apt

快速版

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

WARNING: The following packages cannot be authenticated!
Run Code Online (Sandbox Code Playgroud)

手动安装时,我可以按,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
Run Code Online (Sandbox Code Playgroud)

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

$ 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) <info@puppetlabs.com>
...
Run Code Online (Sandbox Code Playgroud)

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

Package: puppet puppet-common facter
Pin: origin deb.example.org
Pin-Priority: 1001
Run Code Online (Sandbox Code Playgroud)

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

我已经阅读了有关保留软件包的信息,但这并不能帮助我更改软件包版本。

欢迎所有建议。

Mic*_*nik 4

您确定包裹已签名吗?我不确定,但我想应该有适当的签名文件。我们正在签署整个存储库,因此整棵树只有一个签名,我们让 reprepro 为我们做这件事。