GNU/Linux >> Tutoriels Linux >  >> Debian

apt-key est obsolète. Comment ajouter des clés de signature de référentiel OpenPGP sans elles sur Debian, Ubuntu, Linux Mint, Pop ! _OS, etc...

Cet article explique comment ajouter en toute sécurité des clés OpenPGP tierces et des dépôts APT sur les distributions Debian, Ubuntu et Linux basées sur celles-ci comme Linux Mint, Pop ! _OS, Elementary OS, etc. pour remplacer les obsolètes apt-key .

Si vous essayez d'ajouter une clé de référentiel APT avec apt-key sur les distributions Debian, Ubuntu et Linux basées sur celui-ci, vous verrez le message suivant :Attention :apt-key est obsolète. Au lieu de cela, gérez les fichiers de trousseau dans Trusted.gpg.d (voir apt-key (8)) ".

le apt-key La page de manuel mentionne que " L'utilisation d'apt-key est obsolète, à l'exception de l'utilisation d'apt-key del dans les scripts du responsable pour supprimer les clés existantes du trousseau de clés principal “. De plus, "apt-key sera disponible pour la dernière fois dans Debian 11 et Ubuntu 22.04 .

La raison de ce changement est que lors de l'ajout d'une clé OpenPGP utilisée pour signer un référentiel APT, /etc/apt/trusted.gpg ou /etc/apt/trusted.gpg.d , la clé est utilisée par APT sur tous les autres référentiels configurés sur le système qui n'a. ont fait confiance inconditionnellement signed-by (voir ci-dessous), même les dépôts officiels Debian/Ubuntu. Par conséquent, tout référentiel APT non officiel auquel sa clé de signature a été ajoutée sera /etc/apt/trusted.gpg ou /etc/apt/trusted.gpg.d peut remplacer n'importe quel paquet sur le système. Cette modification a donc été apportée pour des raisons de sécurité (votre sécurité).

Il est également intéressant de noter que pendant la période apt-key Le message des paramètres indique "Au lieu de cela, gérez les fichiers de trousseau dans Trusted.gpg.d », le wiki Debian dit autre chose. C'est parce que l'ajout de clés OpenPGP à /etc/apt/trusted.gpg et /etc/apt/trusted.gpg.d est, comme mentionné ci-dessus, tout aussi dangereux.

Vous pouvez continuer à utiliser apt-key pour le moment car cela fonctionne toujours. Cependant, ce serait une bonne idée de commencer la transition vers l'utilisation du signed-by Option comme expliqué ci-dessous, surtout si vous gérez un dépôt tiers.

Alors, quel est le moyen correct et sûr d'obtenir des référentiels tiers (non officiels) et leurs clés de signature OpenPGP sur les distributions Debian, Ubuntu et Linux basées sur eux comme Linux Mint, Pop ! _OS, OS élémentaire, etc. à partir de clés apt obsolètes ?

1. Téléchargez la clé du dépôt APT

Selon le Wiki Debian, par exemple, la clé doit être téléchargée via HTTPS vers un emplacement qui ne peut être écrit que par la racine /usr/share/keyrings . Le nom de la clé doit contenir un nom court décrivant le référentiel suivi de archive-keyring . Par exemple lorsque le référentiel s'appelle myrepository , le fichier clé doit être nommé myrepository-archive-keyring.gpg .

Le fichier de clé OpenPGP peut ou non être blindé en ASCII. Comment vérifier si un fichier clé est blindé en ascii , téléchargez le fichier de clé et exécutez cette commande (Notez que l'extension de clé peut être .gpg, .asc, .key et probablement d'autres ):

file <repo-key>.gpg

Si la sortie de cette commande ressemble à ce qui suit, la clé est blindée en ASCII :

repo-key.gpg: PGP public key block Public-Key (old)

Cependant, voici comment télécharger correctement et en toute sécurité une clé de signature de référentiel et l'ajouter à votre système :

  • Pour les clés OpenPGP blindées ASCII

Pour télécharger avec wget et ajouter une telle clé OpenPGP à votre système, utilisez :

wget -O- <https://example.com/key/repo-key.gpg> | gpg --dearmor | sudo tee /usr/share/keyrings/<myrepository>-archive-keyring.gpg

Ce que tout dans cette commande signifie / signifie :

  • wget télécharge la clé depuis https://example.com/key/repo-key.gpg et donne la clé de stdout (-O- ). Remplacez l'URL ici par l'URL de la clé que vous souhaitez télécharger et ajouter à votre système
  • gpg --dearmor :le gpg Command est l'outil de chiffrement et de signature OpenPGP; c'est --dearmor L'option décompresse l'entrée d'une armure OpenPGP-ASCII
  • sudo tee /usr/share/keyrings/<myrepository>-archive-keyring.gpg :en tant que superutilisateur (sudo ), lire l'entrée standard, dans ce cas la sortie de gpg --dearmor , et écrivez ceci dans le /usr/share/keyrings/<myrepository>-archive-keyring.gpg Dossier. Remplacez ce <myrepository> name avec un nom descriptif pour la clé de référentiel que vous ajoutez

Par exemple, pour ajouter le référentiel APT à l'application Signal, utilisez :

wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor | sudo tee /usr/share/keyrings/signal-archive-keyring.gpg

Ou pour utiliser la commande donnée en exemple sur le wiki Debian (vous devez l'exécuter en tant que root, par exemple après l'avoir exécutée sudo -i; utilisé curl Au lieu de wget pour télécharger la clé):

curl <https://example.com/key/repo-key.gpg> | gpg --dearmor > /usr/share/keyrings/<myrepository>-archive-keyring.gpg

Exemple d'utilisation de cette commande pour ajouter le référentiel Signal APT :

curl https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > /usr/share/keyrings/signal-archive-keyring.gpg

  • Pour les clés OpenPGP blindées non ASCII

Téléchargez la clé OpenPGP avec wget et ajoutez-la à votre système avec :

wget -O- <https://example.com/key/repo-key.gpg> | sudo tee /usr/share/keyrings/<myrepository-archive-keyring.gpg>

Ou pour utiliser la commande donnée en exemple sur le wiki Debian (vous devez l'exécuter en tant que root, par exemple après l'avoir exécutée sudo -i ):

wget -O /usr/share/keyrings/<myrepository-archive-keyring.gpg> <https://example.com/key/repo-key.gpg>

Je n'ai pas ajouté d'exemple ici car je n'ai pas trouvé de référentiel tiers utilisant une clé OpenPGP non protégée par ASCII.

  • Comment importer des clés OpenPGP directement depuis un serveur de clés vers un fichier en /usr/share/keyrings :

sudo gpg --no-default-keyring --keyring /usr/share/keyrings/<myrepository>-archive-keyring.gpg --keyserver <hkp://keyserver.ubuntu.com:80> --recv-keys <fingerprint>

Au lieu de hkp://keyserver.ubuntu.com:80 , vous pouvez utiliser un autre serveur de clés si nécessaire.

Exemple dans lequel nous importons la clé OpenPGP du PPA Linux Uprising Shutter vers /usr/share/keyrings/linux-uprising-shutter-archive-keyring.gpg (Vous pouvez obtenir l'empreinte digitale en cliquant sur le lien vert "Détails techniques sur ce PPA" sur la page PPA - il se trouve sous "Ajouter ce PPA à votre système") :

sudo gpg --no-default-keyring --keyring /usr/share/keyrings/linux-uprising-shutter-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 1CC3D16E460A94EE17FE581CEA8CACC073C3DB2A

Vous pourriez également aimer ceci :Comment empêcher la mise à jour d'un paquet dans Ubuntu, Debian ou Linux Mint [APT]


2. Ajoutez l'entrée source.list pour le référentiel

Les entrées de référentiel tiers doivent être ajoutées à la liste /etc/apt/sources.list.d Répertoire et non directement dans le /etc/apt/sources.list Fichier.

Auparavant, il y avait un fichier sources.list du /etc/apt/sources.list.d Le répertoire ressemblerait à ceci :

deb https://repository.example.com/debian/ stable main

Cependant, pour pouvoir utiliser la clé ajoutée à l'étape 1, l'entrée sources.list doit maintenant ressembler à ceci (/etc/apt/sources.list.d/<myrepository.list> ):

deb [signed-by=/usr/share/keyrings/<myrepository>-archive-keyring.gpg] <https://repository.example.com/debian/ stable main>

Il est important de noter ici que si vous utilisez également le arch=amd64 Option avec signed-by , vous devez séparer les deux options par un espace comme suit :

deb [arch=amd64 signed-by=/usr/share/keyrings/<myrepository>-archive-keyring.gpg] <https://repository.example.com/debian/ stable main>

Par exemple, pour ajouter le référentiel de signaux à votre système Debian/Ubuntu, créez un fichier (en tant que root ; par exemple, pour ouvrir l'éditeur de texte en ligne de commande Nano avec ce fichier :sudo nano /etc/apt/sources.list.d/signal.list ) nommé signal.list en /etc/apt/sources.list.d avec le contenu suivant (à condition d'avoir déjà téléchargé la clé comme décrit ci-dessus, en tant que /usr/share/keyrings/signal-archive-keyring.gpg ):

deb [arch=amd64 signed-by=/usr/share/keyrings/signal-archive-keyring.gpg] https://updates.signal.org/desktop/apt xenial main

N'oubliez pas d'exécuter sudo apt update après avoir ajouté une nouvelle clé de signature et un référentiel pour mettre à jour les sources logicielles.

Vous pouvez également ajouter le référentiel au format de fichier Deb822, mais pour ne pas compliquer davantage les choses, je ne l'expliquerai pas ici. Vous pouvez lire ceci sur le wiki Debian.

Vous pourriez également aimer ceci :Comment trouver le package qui déploie un fichier (installé ou non) sur Ubuntu, Debian ou Linux Mint

Comment supprimer une clé OpenPGP existante qui a été ajoutée au trousseau de clés APT de confiance (/etc/apt/trusted.gpg ou /etc/apt/trusted.gpg.d)

Lorsque vous ajoutez des clés OpenGPG comme décrit ci-dessus, vous devez supprimer la même clé de /etc/apt/trusted.gpg ou /etc/apt/trusted.gpg.d si vous l'avez ajoutée auparavant. Sans cela, il n'y a aucun avantage de sécurité supplémentaire.

Supprimer les clés OpenPGP existantes du /etc/apt/trusted.gpg.d répertoire devrait être assez facile. C'est parce que le nom du fichier clé doit être assez descriptif. Par exemple, le nom de fichier de la clé gpg du référentiel Tor de ce répertoire est sur mon système deb.torproject.org-keyring.gpg

Pour se débarrasser des clés préexistantes qui ont été ajoutées /etc/apt/trusted.gpg.d , il vous suffit de supprimer les fichiers clés. Vous devrez le faire en tant que root, donc ouvrez le gestionnaire de fichiers de votre choix en tant que root avec admin:// (Par exemple, pour ouvrir un emplacement en tant que root dans Nautilus, appuyez sur Ctrl + L Vous pouvez donc taper et taper dans la barre d'adresse admin:///etc/apt/trusted.gpg.d ) ou supprimez-le de la ligne de commande avec :

sudo rm /etc/apt/trusted.gpg.d/<myrepository-keyring.gpg>

Les instructions suivantes fonctionnent également pour retirer les clés du /etc/apt/trusted.gpg.d Répertoire.

Comme pour Suppression des clés APT-GPG stockées dans /etc/apt/trusted.gpg , les choses sont un peu plus compliquées. Utilisez la commande suivante pour répertorier toutes les clés APT OpenPGP qui ont été importées dans /etc/apt/trusted.gpg et /etc/apt/trusted.gpg.d :

apt-key list

Les clés stockées dans /etc/apt/trusted.gpg doivent être listés ci-dessus, suivis des clés du /etc/apt/trusted.gpg.d Annuaire. Vous devez vérifier la clé uid pour savoir quelle clé retirer. Habituellement, l'UID doit indiquer la société ou l'utilisateur qui a signé la clé, suivi de son adresse e-mail.

Clé de /etc/apt/trusted.gpg sont répertoriés par apt-key Listez comme suit (exemple) :

pub   rsa4096 2016-04-22 [SC]

      B9F8 D658 297A F3EF C18D  5CDF A2F6 83C5 2980 AECF

uid           [ unknown] Oracle Corporation (VirtualBox archive signing key) <[email protected]>

sub   rsa4096 2016-04-22 [E]

L'ID de clé correspond aux 8 derniers caractères de l'empreinte digitale de la clé GPG (dans cet exemple, il s'agit de 2980AECF ).

Pour supprimer une clé (depuis /etc/apt/trusted.gpg ou /etc/apt/trusted.gpg.d ), vous pouvez maintenant utiliser :

sudo apt-key del <KEY-ID>

Par exemple, pour supprimer la clé de l'exemple ci-dessus, utilisez :

sudo apt-key del 2980AECF

Vous pourriez aimer ceci :Comment répertorier tous les packages d'un référentiel sur Ubuntu, Debian ou Linux Mint [APT]

Références :

  • https://wiki.debian.org/DebianRepository/UseThirdParty
  • https://askubuntu.com/a/1307181/1149075
  • https://zebnemeth.wordpress.com/2021/01/15/install-signal-desktop-using-gpg/
  • https://github.com/docker/docker.github.io/issues/11625

Merci à vous / ZebNemeth pour cette suggestion !


Debian
  1. Comment installer VLC 1.1.13 sur Ubuntu 11.10 / 12.04, Linux Mint 12

  2. Comment mettre à jour la clé GPG pour le référentiel MySQL APT sur Debian/Ubuntu ?

  3. Debian - Impossible d'ajouter une clé Gpg avec Apt-key derrière un proxy ?

  4. Comment installer Oracle Java 16 sur Debian, Ubuntu, Pop ! _OS ou Linux Mint utilisant le référentiel APT PPA

  5. Comment installer Oracle Java 15 sur Ubuntu, Debian ou Linux Mint à l'aide du référentiel APT PPA

Comment ajouter un référentiel à Debian

Comment installer Visual Studio Code sur Ubuntu 18.04 / Linux Mint 19 et Debian 9

Comment télécharger des packages avec des dépendances localement dans Ubuntu, Debian, Linux Mint, Pop OS

Comment configurer des clés SSH sur Debian 11 Linux

Comment installer Wine Staging, Development ou Stable sur Ubuntu, Linux Mint ou Debian 10 (éviter les problèmes de dépendance)

Comment installer et configurer Node.js et npm dans Ubuntu, Debian ou Linux Mint