Dans cet article, je vous expose la méthode recommandée pour ajouter les clés de signatures de vos dépôts tiers sur Debian, Ubuntu et les distributions dérivées de ces dernières (comme Linux Mint). Ainsi, vous n’aurez pas/plus d’avertissements sur l’obsolescence de apt-key du style :
apt-key is deprecated
lors de l’utilisation de la commande apt-key- ou
W: http://repository.example.com/dists/stable/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
lors de la mise à jour, en ligne de commande, de la liste de vos paquets.
Table des matières
Introduction
Pourquoi apt-key devient obsolète ?
Si vous faites un petit tour dans le manuel de apt-key
(commande man apt-key
), vous lirez en anglais que :
L’utilisation de apt-key est obsolète […].
apt-key sera disponible pour la dernière fois dans Debian 11 et Ubuntu 22.04
Manuel de apt-key
L’explication à ce changement peut se trouver sur le wiki Debian (page en anglais). Mais en gros :
La commande apt-key
ajoute les clés dans /etc/apt/trusted.gpg
ou /etc/apt/trusted.gpg.d
. À ces emplacements, les clés deviennent approuvées par APT pour tous les dépôts configurés sur le système qui n’ont pas d’option signed-by
(voir plus bas), même les dépôts officiels de Debian, Ubuntu, Linux Mint, etc. Et, ainsi, tout dépôt non officiel pourrait remplacer n’importe quel paquet sur le système, ce qui crée un risque pour la sécurité du système…
De plus, bien que le manuel apt-key
indique d’utiliser /etc/apt/trusted.gpg.d
, Debian le déconseille pour les raisons expliquées ci-dessus. Il recommande d’utiliser à la place /usr/share/keyrings/
. Certaines documentations suggèrent l’utilisation de l’emplacement /etc/apt/keyrings/
, mais ce dernier n’existe par défaut sur Debian et Ubuntu.
Donc, pour le moment, apt-key
fonctionne toujours. Vous n’avez que des avertissements (pas des erreurs) que vous pouvez ignorer. Toutefois, comme le changement est proche, autant commencer à utiliser une meilleure méthode recommandée par Debian. Celle je vous expose ci-dessous…
Mais, soyons honnête, nous passons d’une méthode simple à une plus complexe qui pourrait en dissuader plus d’un…
Les fichiers de clé de signature de dépôts
Ils permettent au système de s’assurer que le dépôt utilisé est sûr. Ils peuvent avoir différentes extensions (.gpg
, .asc
, .key
, …) et être aux formats ASCII-Armor ou binaire.
Un fichier de clé ASCII-Armor utilise un format texte lisible dans un éditeur. Si vous l’ouvrez, le fichier commence par :
-----BEGIN PGP PUBLIC KEY BLOCK-----
Alors qu’une clé qui ne l’est pas est dans un format binaire illisible.
Le format d’un fichier clé peut aussi se vérifier avec la commande :
file nom_de_fichier_cle.ext
Si, en retour, vous avez :
nom_de_fichier_cle.ext: PGP public key block Public-Key (old)
la clé est au format ASCII-Armor.La commande
gpg --dearmor
permet de convertir le fichier au format binaire.
Les fichiers de clé de signature d’un dépôt pour l’import ne doivent pas être au format ASCII-Armor.
Ajouter un dépôt et importer sa clé de signature sans utiliser apt-key
Les principales étapes sont :
- Récupérer/télécharger le fichier clé
- Convertir en binaire si le fichier clé est au format ASCII-Armor
- Copier la clé dans
/usr/share/keyrings/
avec un nom de fichier du style<un-nom>-archive-keyring.gpg
(<
à adapter en le remplaçant, par exemple, par le nom du dépôt)un-nom
> - Ajouter ou modifier le fichier
.list
du dépôt correspondant avec[signed-by=/usr/share/keyrings/<
entre leun-nom
>-archive-keyring.gpg]deb
de début de ligne et l’URL du dépôt et sauvegarder
Importer la clé de signature du dépôt sans apt-key
Une fois format de la clé connu, vous pouvez faire les 3 premières étapes avec une seule ligne de commande.
- Pour un fichier de clé binaire (non ASCII-Armor), la commande pourra être du style :
wget -O /usr/share/keyrings/<un-nom>-archive-keyring.gpg https://depot.example.net/debian/<nom-fichier-cle>.gpg
Exemple pour la clé (non ASCII-Armor) du dépôt de Mkvtoolnix :
sudo wget -O /usr/share/keyrings/mkvtoolnix-archive-keyring.gpg https://mkvtoolnix.download/gpg-pub-moritzbunkus.gpg
- Pour un fichier de clé ASCII-Armor, utilisez une commande du style :
wget -O- https://depot.example.net/debian/<nom-fichier-cle>.<ext> | sudo gpg --dearmor --yes --output /usr/share/keyrings/<un-nom>-archive-keyring.gpg
Exemple pour la clé du dépôt de VirtualBox :
wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --dearmor --yes --output /usr/share/keyrings/virtualbox-archive-keyring.gpg
Ajouter le dépôt correspondant à la clé importée
Pour ajouter le dépôt, vous pouvez utiliser avec une ligne de commande du style :
echo "deb [signed-by=/usr/share/keyrings/<un-nom>-archive-keyring.gpg] URL_du_depot distribution composant" | sudo tee /etc/apt/sources.list.d/<nom-depot>.list
Par exemple pour VirtualBox sur Ubuntu 22.04 :
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/virtualbox-2016-archive-keyring.gpg] https://download.virtualbox.org/virtualbox/debian jammy contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list
Modifier un dépôt déjà ajouté
Si vous avez déjà ajouté le dépôt à la liste de vos sources, ouvrez le fichier correspondant avec des droits administrateur (sudo
) pour pouvoir le modifier. Exemple avec nano :
sudo nano /etc/apt/source.list.d/virtualbox.list
Et modifier la ligne pour y ajouter signed-by
suivi de l’emplacement du fichier clé. Par exemple :
deb [arch=amd64 signed-by=/usr/share/keyrings/virtualbox-archive-keyring.gpg] https://download.virtualbox.org/virtualbox/debian jammy contrib
Si vous ne l’avez pas encore ajouté, vous pouvez le faire avec une ligne de commande du style :
Le cas des PPA (Ubuntu, Linux Mint, etc.)
Sur Ubuntu 22.04, l’ajout d’un PPA importe sa clé directement de
/etc/apt/trusted.gpg.d
ce qui évite d’avoir l’avertissement, mais la met à un emplacement non recommandé.Sur Linux Mint 21.x, la clé est encore importée dans le fichier
/etc/apt/trusted.gpg
ce qui affichera un avertissement si vous faites de mises à jour du cache APT depuis un terminal.
Si vous les utilisez, pour ne pas/plus avoir d’avertissement sur l’obsolescence de apt-key, voici une méthode :
Ouvrez un terminal et faites :
sudo apt-key list
Cela vous listera les clés présentes dans trusted.gpg
ou /etc/apt/trusted.gpg.d
. Suivant votre système et votre configuration, elle sera plus ou moins longue.
Chaque clé de signature sera listée avec « pub rsa<un-nombre> <une-date>
» suivi d’une ligne avec une empreinte hexadécimale à 40 chiffres.

Vous pouvez aussi trouver cette empreinte sur la page web du PPA :

Notez les 8 derniers chiffres de chaque empreinte sans garder l’espace. Par exemple, pour LibreOffice, les chiffre à noter sont 1378B444
.
Ensuite, extrayez les clés vers /usr/share/keyrings/
avec la commande :
sudo apt-key export <8_dernier_digit_de_empreinte> | sudo gpg --dearmour -o /usr/share/keyrings/<nom-depot>-archive.keyring.gpg
Par exemple pour LibreOffice, faites :
sudo apt-key export 1378B444 | sudo gpg --dearmour -o /usr/share/keyrings/libreoffice-archive.keyring.gpg
Puis dans le dossier /etc/apt/sources.list.d
modifiez les fichiers .list
des PPA correspondants pour y ajouter entre le deb
de début de ligne et l’URL : [signed-by=/usr/share/keyrings/<un-nom>-archive.keyring.gpg]
.
Par exemple pour LibreOffice :
deb [signed-by=/usr/share/keyrings/libreoffice-archive.keyring.gpg] https://ppa.launchpadcontent.net/libreoffice/ppa/ubuntu/ jammy main
Pour finir, vous pouvez supprimer la clé sauvegarder dans trusted.gpg
ou /etc/apt/trusted.gpg.d
avec :
sudo apt-key del <8_dernier_digit_de_empreinte>
Par exemple, pour effacer la clé du PPA de LibreOffice, faites :
sudo apt-key del 1378B444
c’est du grand n’importe quoi linux…
Tu devrais l’essayer, ensuite faire tes constatations et enfin l’ouvrir, Pingouins !!!
Un DebianMan de plus Linuxien !!!