web-dev-qa-db-fra.com

Pourquoi les packages deb signés disent-ils qu'ils ne sont pas authentifiés lorsqu'ils sont copiés dans mon référentiel deb privé?

Version rapide

J'ai mis en place un référentiel deb privé et y ai copié des packages deb signés. J'ai installé la clé de signature localement. Cependant, lorsque j'essaye d'installer depuis le dépôt, je reçois cet avertissement:

WARNING: The following packages cannot be authenticated!

Lors de l'installation manuelle, je peux simplement appuyer sur y mais je veux installer ces paquets automatiquement en utilisant puppet, et cela échoue.

Donc quel est le problème? Dois-je démissionner des paquets avec une clé que je contrôle? Existe-t-il un meilleur moyen de s’assurer de l’installation d’une version particulière de la marionnette?

Plus de détails

J'ai les paquets du référentiel de marionnettes debian - http://apt.puppetlabs.com/ Je viens de copier le paquet de (pour lucid) this répertoire

Le référentiel est ensuite mis à jour avec un script qui exécute ces commandes pour chaque référentiel:

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

J'ai installé la clé de signature sur le client.

$ 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]>
...

La raison en est que je veux que tous les clients fantoches aient la même version. Donc, toutes les machines devraient obtenir les paquets de mon référentiel en utilisant le pin suivant dans /etc/apt/preferences.d/puppet:

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

(Nous utilisons actuellement marionnette 2.6.x, il me faut donc une priorité de 1001 pour rétrograder des clients précis de 2.7.x).

J'ai lu à propos de conserver les paquets mais cela ne m'aide pas à changer de version de paquet.

Toutes les suggestions sont les bienvenues.

4
Hamish Downer

*.deb les paquets sont non signés directement dans Debian. Il existe un moyen de le faire, mais rien dans Debian ne l'utilise.

Le principe utilisé par les dépôts Debian et Ubuntu APT fonctionne plutôt comme ceci:

Tous les packages binaires *.deb sont répertoriés dans un fichier (par exemple) binary-i386/Packages.gz avec leurs sommes de contrôle. (Toutes les versions actuelles de Debian et Ubuntu utilisent les trois (!) De MD5, SHA-1 et SHA-256. Les anciennes versions utilisaient MD5 uniquement.) Tous les paquets source *.dsc sont répertoriés dans source/Sources.gz.

Tous ces fichiers binary-*/Packages.* et source/Sources.* sont ensuite répertoriés, avec leur somme de contrôle, dans un fichier Release, signé en tant que Release.gpg ou InRelease, Clé PGP du référentiel .

Donc, fondamentalement, si vous mettez des packages dans votre propre référentiel APT, vous devrez le signer et utiliser apt-key add pour importer la clé de signature de votre propre référentiel dans votre système lorsque vous le souhaitez. d'utiliser n'importe quel paquet de ce dépôt.

3
mirabilos