web-dev-qa-db-fra.com

repo privé: les signatures suivantes étaient invalides

Sur mes 'clients' bioniques, je reçois:

GPG error: http://repo.localpod/Dml/ldom-debs/ubuntu bionic InRelease: The following signatures were invalid: ADE541A20ACF8997C01BDCF7090678A30132048A

Notez qu'il dit "invalide", ne manque pas!

Ce sont mes propres paquets .deb, rassemblés dans un dépôt. (cela fonctionne très bien pour trusty et xenial)

J'ai signé le dépôt avec quelque chose comme: (appelé via reprepro: conf/distributions)

gpg --batch --yes --keyring $KeyP --secret-keyring $KeyS -a --no-permission-warning   --detach-sign --default-key 'ldom install service' --output $3 $1
$1 = .../Release
$2 = .../InRelease

ok, alors j'ai essayé:

 wget  http://repo.localpod/Dml/ldom-debs/ubuntu/dists/bionic/InRelease
 and: 
 # gpgv --keyring /etc/apt/trusted.gpg "InRelease"
 gpgv: Signature made Thu 24 May 2018 12:20:29 PM CEST
 gpgv:                using DSA key 090678A30132048A
 gpgv: Good signature from "ldom install service <[email protected]>"

N’est-ce pas, plus ou moins, comment apt-get vérifie les signatures? Ou la clé est-elle trop vieille? mauvais type ?

erreur complète:

 apt-key list
 pub   rsa2048 2014-06-24 [SC]
      754A 1A7A E731 F165 D5E6  D4BD 0E08 A149 DE57 BFBE
uid           [ unknown] SaltStack Packaging Team <[email protected]>
sub   rsa2048 2014-06-24 [E]

pub   dsa1024 2013-06-10 [SCA]
      ADE5 41A2 0ACF 8997 C01B  DCF7 0906 78A3 0132 048A
uid           [ unknown] LDOM install service <[email protected]>
sub   elg1024 2013-06-10 [E]

root@ubu18:~# apt-get update
 Get:1 http://repo.localpod/Dml/ldom-debs/ubuntu bionic InRelease [1,154 B]
 Err:1 http://repo.localpod/Dml/ldom-debs/ubuntu bionic InRelease
   The following signatures were invalid:  ADE541A20ACF8997C01BDCF7090678A30132048A
 Reading package lists... Done
 W: GPG error: http://repo.localpod/Dml/ldom-debs/ubuntu bionic InRelease: The  following signatures were invalid: ADE541A20ACF8997C01BDCF7090678A30132048A
 E: The repository 'http://repo.localpod/Dml/ldom-debs/ubuntu bionic InRelease'  is not signed.
 N: Updating from such a repository can't be done securely, and is therefore disabled by default.
 N: See apt-secure(8) manpage for repository creation and user configuration details.

Tout indice quant à ce qui me manque, serait le bienvenu ... Merci,

/ holger

solution de contournement:

J'ai fini par suivre un guide ( https://www.digitalocean.com/community/tutorials/how-to-use-reprepro-for-a-secure-package-repository-on-ubuntu-14-04) ) ----> plus ou moins. ---> encore un peu de 'work in progress', mais voici quelques astuces:

en utilisant une image (fraîche) de docker:

docker run -it -v /your/packages:/debs ubuntu:18.04
apt update
apt install -y vim inetutils-ping curl wget netcat telnet aptitude man manpages bash-completion rng-tools reprepro iproute2

rebuild your packages:

cd  /debs/src
ls -d */DEBIAN  | xargs -n1 dirname | xargs -n1 dpkg-deb -vD --build

temps pour des choses clés. utiliser une clé existante:

    gpg --import /debs/.../secring.gpg

pour une nouvelle clé:

gpg --full-generate-key
#rsa 4
#bits  4096
#your_key_name
#passphrase

#
gpg --edit-key your_key_name
#addkey
#(4) RSA (sign only)
#4096
#0
#yes
#yes
#save

gpg --list-secret
gpg --list-key


gpg --export .....your..key.....number............... > keyfile
apt-key add keyfile

ok, le temps pour l'installation de reprepro:

mkdir /debs/u18repo
cd /debs/u18repo
cat <<END >conf/options
ask-passphrase
END

cat <<END >conf/distributions
Codename: bionic
Components: main
Architectures: AMD64
SignWith: .....your..key.....number...............
END
reprepro -b /debs/u18repo includedeb bionic /debs/src/*.deb

gpg --export .....your..key.....number............... > keyfile

tester:

apt-key add keyfile
echo "deb file:////debs/u18repo/ bionic main" >> "/etc/apt/sources.list"
apt update

maintenant, si vous partagez/debs/u18repo sur vos clients (httpd) et importez la clé avec: apt-key add http: /.../ keyfile: apt update devrait fonctionner ...

3
Holger Morgen

J'ai eu le même problème. Dans le fichier InRelease, il y a un message signé par PGP et il devrait contenir:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Cela signifie que SHA256 est utilisé pour la signature. SHA1 est un algorithme faible et ne devrait pas être utilisé. Donc, si SHA1 est là, vous devez mettre à jour votre configuration gnupg pour utiliser sha256

Dans mon cas:

echo "personal-digest-preferences SHA256 SHA384 SHA512 SHA224 RIPEMD160" >> ~/.gnupg/gpg.conf

puis renoncez au fichier InRelease en utilisant gpg comme d'habitude.

4
Rasul Osmanov

J'avais affronté exactement le même problème.

Assurez-vous que toutes les clés que vous utilisez sont au format binaire et non au format armé ASCII. Si l’une des clés est au format armé ASCII, convertissez-la en binaire à l’aide de -

gpg --dearmor

Selon this -

... La raison pour laquelle nous évitons les fichiers ASCII-blindés est qu'ils ne peuvent pas être utilisés directement par SecureApt.

Assurez-vous également que les lignes suivantes ou quelque chose de similaire soit dans votre fichier ~/.gnupg/gpg.conf -

cert-digest-algo SHA256
digest-algo SHA256
0
Khushal Sancheti