25
octobre
2023
« Comment se débarrasser de l'avertissement lors de la mise à jour d'apt-get update « W : la clé est stockée dans le trousseau de clés trust.gpg hérité » ? »
16:15

« Comment se débarrasser de l'avertissement lors de la mise à jour d'apt-get update « W : la clé est stockée dans le trousseau de clés trust.gpg hérité » ? »

25 octobre 2023 16:15

Si des référentiels tiers sont connectés au système d'exploitation Linux, lors de la mise à jour des packages, vous pouvez recevoir le message d'erreur « La clé est stockée dans le trousseau de clés trust.gpg hérité ».

Raison de cet avertissement

Dans plusieurs versions récentes d'Ubuntu et de Linux Mint, l'utilisation du programme apt-key, qui ajoutait la clé du référentiel à un seul référentiel, est abandonnée. Ce qui est obsolète (hérité), bien qu'il n'ait pas perdu la compatibilité, mais il n'est pas recommandé de l'utiliser. Au lieu de "l'ancien" magasin de clés /etc/apt/trusted.gpg, следует использовать новые хранилища ключей GPG для каждого из репозиториев, в папке: /etc/apt/trusted.gpg.d.

Résoudre le problème

  1. On connaît le nom du dépôt (écrit dans le message d'erreur lors de la mise à jour apt-get). Dans ce cas, il s'agit de dl.winehq.org

  2. A l'aide de la commande sudo apt-key list, on découvre le code hexadécimal de la signature du référentiel

    sudo apt-key list

il faut chercher avec les yeux par nom. Les lignes suivantes sont visibles :
------------------------------------------------
publication rsa3072 2018-12-10 [SC]
D43F 6401 4536 9C51 D786 DDEA 76F1 A20F F987 672F
uid [inconnu] Packages WineHQ wine-devel@winehq.org

  1. Je découvre le code de signature - les 8 derniers caractères du code clé GPG complet.

A partir du code D43F 6401 4536 9C51 D786 DDEA 76F1 A20F F987 672F je prends les 8 derniers caractères et supprime l'espace.
Il s'est avéré F987672F.

  1. J'importe un nouveau référentiel dans un fichier GPG à l'aide d'une commande sur une seule ligne :

    sudo apt-key export F987672F | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/wine-hq.gpg

où j'utilise apt-key uniquement pour exporter une clé avec l'empreinte digitale F987672F

Pour les autres programmes, l'exemple de commande doit être corrigé en conséquence. Il vous suffit de remplacer le code de la clé d'exportation et le nom du fichier de destination.

Par exemple, pour le navigateur Yandex, la signature sera stockée dans le dossier /etc/apt/trusted.gpg.d/ du fichier yandex-browser.gpg :

sudo apt-key export 083A7A9A | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/yandex-browser.gpg

Comment éviter que l'erreur ne se reproduise lors de l'ajout de référentiels tiers

Toute utilisation de la commande doit être évitée sudo apt-key, tels que :
sudo apt-key import файл_ключа.key ou
wget -qO- <URL> | sudo apt-key add -
*curl -sS <URL>.gpg | sudo apt-key add -

*sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 00000000

La clé adv est obsolète, comme indiqué dans le man.
Équipe sudo apt-key add obsolète.

La (nouvelle) façon correcte d'ajouter une clé de référentiel en utilisant l'exemple du référentiel WineHQ :

Si la clé est sur le serveur :

wget  -qO- https://dl.winehq.org/wine-builds/winehq.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/winehq.gpg  > /dev/null

Si clé publique situé dans la base de données de clés cryptographiques sur le serveur serveur de clés.ubuntu.com:

Première équipe importe la clé dans la base de données locale :

gpg --keyserver keyserver.ubuntu.com --recv E084DAB9

Deuxième équipe exporte la clé et l'ajoute au magasin privé some.gpg :

gpg --export E084DAB9  | sudo tee /etc/apt/trusted.gpg.d/some.gpg  > /dev/null

où E084DAB9 est l'empreinte digitale de la clé publique, some.gpg est le nom du fichier de clés GPG généré par l'utilisateur.

Vérifiez que gpg a généré le bon fichier :

file /etc/apt/trusted.gpg.d/some.gpg

Le résultat devrait montrer que nous avons un fichier au format de certificat binaire OpenPGP :

/etc/apt/trusted.gpg.d/some.gpg : clé publique OpenPGP version 4, créée le lundi 10 décembre 16:56:24 2018, RSA (crypter ou signer, 3 072 bits) ; ID de l'utilisateur; Signature; Certificat OpenPGP



Après avoir importé la clé, vous pouvez exécuter la commande comme d'habitude apt-add-repository et installer le programme, par exemple :
sudo apt-add-repository 'https://dl.winehq.org/wine-builds/ubuntu/ main'
sudo apt update
sudo apt install wine

La bonne façon de résoudre le problème n°2 (extrait des instructions d'installation d'OpenVPN)

Téléchargez la clé repo-public.gpg depuis le site et ajoutez-la au trousseau /usr/share/keyrings/openvpn-public.gpg

curl -fsSL https://swupdate.openvpn.net/repos/repo-public.gpg | sudo gpg --dearmor -o /usr/share/keyrings/openvpn-public.gpg

Dans cette méthode, curl est utilisé à la place de wget, le paramètre -o est utilisé à la place de tee et /usr/share/keyrings/ est utilisé à la place du dossier /etc/apt/trusted.gpg.d/.

Dans le fichier de description de la source de données du référentiel de logiciels tiers Ubuntu Linux 22 "Jammy", nous indiquons la clé GPG importée avec laquelle le référentiel est signé

sudo echo "deb [arch=amd64 signed-by=/usr/share/keyrings/openvpn-public.gpg] https://build.openvpn.net/debian/openvpn/stable jammy main" > /etc/apt/sources.list.d/openvpn-repo.list

Ici, dans le fichier sources.list.d, une mention de la clé est ajoutée [arch=amd64 signed-by=/usr/share/keyrings/openvpn-public.gpg] du trousseau gpg.

Quel dossier est le meilleur pour stocker les clés gpg ?

(Addenda du 24 novembre 2023)

Où se trouve le bon endroit pour stocker les clés - dans le dossier /etc/apt/trusted.gpg.d/ ou dans /usr/share/keyrings ?

L'instruction man sources.list répond à cette question de la façon suivante :

"Les emplacements recommandés pour stocker les clés sont /usr/share/keyrings pour les trousseaux de clés gérés par le package et /etc/apt/keyrings pour les trousseaux de clés gérés par sysop. Si les fichiers de trousseaux de clés ne sont pas spécifiés, la valeur par défaut est le trousseau de clés trust.gpg et tous les trousseaux de clés du répertoire trust.gpg.d/ (...)"

Il n’existe donc aucune indication directe sur la façon de stocker correctement les clés gpg. Clés logiques pour les référentiels apte placer dans un dossier /etc/apt/trusted.gpg.d/, тогда как наборы ключей для других целей можно помещать в /usr/share/keyrings. Если стоит цель - сохранить ключи при переустановке системы, то следует использовать папку ~/.local/share/keyrings, dans lequel les clés privées de l'utilisateur peuvent être stockées.


Sources :



Publications connexes