Cours Ubuntu 26.04 / Gérer les dépôts et limiter la portée des clés de signature

Pour gérer les dépôts Ubuntu 26.04, examinez les fichiers de sources réellement utilisés et les clés autorisées à les authentifier. Avant d’ajouter un dépôt tiers, vérifiez son éditeur, sa prise en charge de 26.04 et l’empreinte complète de sa clé, puis limitez cette clé à la source voulue avec Signed-By. Une signature valide établit une chaîne de confiance vers l’éditeur ; elle ne garantit pas la qualité de tous ses logiciels.

Lire les sources actives avant une modification

Dans votre VM Ubuntu, commencez par des lectures :

cat /etc/os-release
find /etc/apt/sources.list.d -maxdepth 1 -type f -print
apt-cache policy

Sur une installation Ubuntu récente, les sources officielles sont généralement dans /etc/apt/sources.list.d/ubuntu.sources. Vous pouvez le lire s’il existe :

if test -f /etc/apt/sources.list.d/ubuntu.sources; then
    cat /etc/apt/sources.list.d/ubuntu.sources
fi

Une image cloud, une installation personnalisée ou une mise à niveau peut présenter d’autres fichiers. Examinez aussi /etc/apt/sources.list s’il existe. Les anciens fichiers .list et les fichiers deb822 .sources peuvent coexister : cherchez les sources définies deux fois au lieu d’ajouter une nouvelle entrée supposée manquante.

apt-cache policy montre les origines connues à partir des index locaux. Pour un paquet précis, ajoutez son nom, par exemple apt-cache policy hello ; comparez Installed et Candidate selon le cours de recherche et d’installation avec APT. Une source décrite dans un fichier ne garantit pas qu’un rafraîchissement récent a réussi.

Comprendre la structure deb822 et les composants

deb822 organise chaque entrée en champs Nom: valeur. Les entrées d’un fichier .sources sont séparées par une ligne vide. Un champ à plusieurs valeurs utilise des espaces ; ne recopiez pas la ponctuation des options d’un ancien fichier .list dans ce format.

Champ Ce qu’il faut vérifier
Types deb pour les paquets binaires, deb-src pour les sources lorsque nécessaires.
URIs Emplacement et éditeur du dépôt. Le miroir peut varier selon l’image ou l’architecture.
Suites Série et canaux, par exemple resolute, resolute-updates ou resolute-security pour Ubuntu 26.04.
Components Sections de paquets telles que main, restricted, universe et multiverse.
Architectures Limitation éventuelle aux architectures réellement publiées par le dépôt.
Signed-By Clé ou ensemble de clés autorisées à vérifier cette source ; souvent un fichier dédié.
Enabled no désactive cette entrée ; yes ou l’absence de ce champ permet son activation.

Un même fichier peut contenir plusieurs entrées : modifier Enabled ne doit pas désactiver par accident les sources officielles que vous voulez conserver. Le manuel sources.list d’Ubuntu décrit les formats et la portée des champs.

Activer un composant ne donne pas automatiquement la même maintenance de sécurité à tous ses paquets. Vérifiez les conditions de support LTS et des paquets. Pour un dépôt tiers, remplacer dans ses instructions une autre version par resolute ne démontre pas sa compatibilité : architecture, dépendances et politique de l’éditeur doivent correspondre.

Vérifier les clés et leur portée de confiance

Une installation Ubuntu de confiance contient déjà les clés nécessaires à ses dépôts officiels. L’exemple suivant lit les clés publiques du trousseau d’archives Ubuntu, lorsque ce fichier et GnuPG sont disponibles :

gpg --show-keys --with-fingerprint /usr/share/keyrings/ubuntu-archive-keyring.gpg

Il s’agit d’un affichage, pas de l’ajout d’une clé. Les clés d’archives de paquets et les clés de signature des images ISO remplissent des rôles différents : ne remplacez pas ce trousseau avec une clé récupérée pour vérifier un téléchargement d’ISO.

Pour une source tierce, consultez les instructions HTTPS officielles de son éditeur et comparez l’empreinte complète. Le nom du fichier, le nom affiché de la clé et un identifiant court ne suffisent pas. Un serveur de clés sert à obtenir des données publiques, pas à prouver seul l’identité du détenteur.

Les clés administrées localement peuvent être placées dans /etc/apt/keyrings ; les clés fournies par un paquet se trouvent habituellement dans /usr/share/keyrings. Référencez la clé voulue dans Signed-By au lieu d’étendre inutilement sa confiance à toutes les sources. Les versions APT actuelles permettent également une clé intégrée au champ Signed-By d’un fichier .sources ; suivez la syntaxe de l’éditeur et du manuel.

Le fichier et ses répertoires parents doivent être lisibles par APT, notamment son utilisateur de téléchargement _apt. Pour une clé publique, le format ASCII armuré utilise .asc et le format non armuré .gpg. Renommer une base GnuPG .kbx ne la transforme pas en un trousseau adapté à APT. Le manuel apt-secure précise les formats et la chaîne d’authentification.

Ne contournez pas une erreur de signature avec trusted=yes ou une option ignorant l’authentification. Vérifiez la bonne clé, sa portée, son renouvellement annoncé et les fichiers de métadonnées du dépôt. Faire confiance à un éditeur signifie accepter les logiciels qu’il peut publier ; la signature n’est pas une analyse de leur innocuité.

Sauvegarder puis modifier une seule source identifiée

Cette étape suppose que vous avez réellement une source tierce à désactiver ou corriger et les droits d’administration de la VM. S’il n’y en a aucune, gardez l’inventaire sans créer un dépôt fictif pour l’exercice.

Pour un fichier situé dans sources.list.d, créez d’abord une copie du répertoire dans un nouvel emplacement root :

repo_backup=$(sudo mktemp -d /root/apt-sources.XXXXXX) &&
sudo cp -a /etc/apt/sources.list.d "$repo_backup/" &&
printf 'Backup: %s\n' "$repo_backup"

Ne poursuivez que si les commandes réussissent et si la copie attendue est présente. Notez le chemin affiché dans un relevé privé ; la variable du terminal ne remplace pas ce relevé durable. Si votre modification concerne l’ancien fichier /etc/apt/sources.list, sauvegardez également ce fichier avant de le toucher : la copie du seul sous-répertoire ci-dessus ne l’inclut pas.

  1. Identifiez le fichier exact et l’entrée concernée grâce à URIs, Suites et Signed-By. Conservez le nom et les valeurs d’origine.
  2. Ouvrez ce fichier avec sudoedit en utilisant son chemin réel. Ne modifiez pas tous les fichiers du dossier pour désactiver une seule source.
  3. Dans l’entrée deb822 choisie, ajoutez Enabled: no, ou remplacez uniquement sa valeur existante. Gardez les autres entrées et champs intacts.
  4. Enregistrez, puis comparez le fichier modifié avec sa copie dans le dossier de sauvegarde. Vérifiez que seule la modification voulue apparaît avant le rafraîchissement.

Le champ de désactivation s’écrit ainsi dans l’entrée .sources concernée :

Enabled: no

Dans un ancien .list, la méthode est différente : commenter la ligne complète avec # désactive cette ligne. Ne mélangez pas les deux formats. Désactiver la source ne désinstalle ni ses paquets ni leurs données. Il ne faut pas non plus supprimer la clé publique avant d’avoir vérifié qu’aucune autre source ne la référence.

Rafraîchir, vérifier le candidat et revenir sur la modification

sudo apt update
apt-cache policy

Lisez le résultat complet : dépôts attendus disponibles, absence d’erreur de signature ou de format et absence de doublon involontaire. Vérifiez ensuite la politique du paquet concerné avec son nom. Une source désactivée ne doit plus fournir un nouveau candidat via le rafraîchissement attendu, mais une version déjà installée reste visible dans l’état local.

Si le résultat est incorrect, ne réinstallez pas automatiquement les paquets et ne remplacez pas le nom de code du système. Retrouvez dans le dossier sauvegardé le fichier de même nom, comparez l’entrée d’origine et rétablissez uniquement les champs modifiés avec sudoedit. Pour un simple Enabled: no ajouté pendant cet exercice, revenir à la valeur d’origine, ou retirer ce champ s’il était absent, rétablit cette partie de la configuration.

Répétez apt update puis policy après la correction. Copier aveuglément tout l’ancien dossier sur le dossier actuel peut effacer des changements indépendants ; préférez le retour limité au fichier et à l’entrée concernés. L’explication officielle Ubuntu sur les dépôts tiers détaille aussi leur influence sur les versions et les futures mises à niveau de la distribution.

Gardez le nom de la source, son état final, la clé autorisée, le chemin de sauvegarde et le résultat du rafraîchissement. Ne confondez pas ce changement de sources avec une suppression ou un retour de version de logiciel : ceux-ci demandent leur propre examen des dépendances.