Cours Ubuntu 26.04 / Télécharger et vérifier une ISO avec SHA-256 et GPG

Téléchargez l’ISO Ubuntu 26.04 depuis une source officielle, puis récupérez SHA256SUMS et SHA256SUMS.gpg dans le répertoire de cette image. Vérifiez d’abord la signature du fichier de sommes avec une clé Ubuntu dont vous avez contrôlé l’empreinte complète, puis comparez le SHA-256 de l’ISO. La signature authentifie la liste ; la comparaison du hash contrôle les octets du fichier téléchargé.

Rassembler les trois fichiers correspondants

Une ISO contient les données d’un support d’installation. Elle se monte dans le lecteur optique virtuel d’une VM ; créer une clé USB amorçable pour une machine physique nécessite une opération distincte d’écriture d’image. Le simple téléchargement ne prépare pas cette clé USB.

Choisissez Ubuntu Server 26.04 LTS et votre architecture sur le site officiel de téléchargement Server. L’exemple amd64 de cette leçon est ubuntu-26.04.1-live-server-amd64.iso. Pour une autre architecture ou version ponctuelle, adaptez le nom et le répertoire de vérification ; le cours sur les images et architectures Ubuntu aide à les distinguer.

  1. Créez un nouveau dossier de travail, par exemple ubuntu-26.04-verify dans Téléchargements, et placez-y l’ISO complète.
  2. Dans le répertoire officiel contenant cette ISO, téléchargez aussi SHA256SUMS et SHA256SUMS.gpg. Pour l’exemple amd64, partez du répertoire officiel 26.04.
  3. Affichez les extensions de fichiers. Vérifiez que SHA256SUMS n’est pas devenu SHA256SUMS.txt ou une page HTML et que l’ISO n’est pas encore un téléchargement partiel.

.torrent et .zsync sont des données destinées à des outils de téléchargement, pas l’ISO. Rassembler trois fichiers dans un même dossier ne prouve pas qu’ils correspondent : vérifiez série, version ponctuelle, architecture et nom exact de l’image.

Conservez les octets téléchargés de la liste et de sa signature. Vous pouvez lire SHA256SUMS, mais le réenregistrer dans un éditeur peut changer l’encodage ou les fins de ligne et invalider la signature.

Distinguer intégrité et authenticité

SHA-256 calcule une empreinte de 256 bits, habituellement représentée par 64 caractères hexadécimaux. Une comparaison avec une valeur attendue fiable permet de détecter un contenu différent. Si un tiers remplace à la fois l’image et une liste de sommes non authentifiée, la seule égalité des deux valeurs ne permet pas d’identifier l’origine du fichier.

SHA256SUMS.gpg est une signature détachée du fichier SHA256SUMS. GnuPG vérifie que la signature correspond aux données et à une clé ; c’est la vérification de l’empreinte de cette clé à partir d’une source officielle qui permet de relier le résultat à Ubuntu. Le guide officiel de vérification Ubuntu présente ces deux contrôles complémentaires.

Un contrôle réussi ne démontre pas l’absence de bogues dans Ubuntu ni la compatibilité de votre machine. Il répond à une question plus précise : avez-vous le fichier correspondant à une liste authentifiée par la clé attendue ?

Préparer GnuPG et un dossier de clés séparé

Utilisez un environnement de vérification de confiance. Sous Ubuntu déjà installé, command -v gpg permet de chercher GnuPG ; s’il manque, vous pouvez installer gnupg depuis les dépôts officiels avec sudo apt install gnupg. Sous Windows, utilisez une distribution officielle telle que Gpg4win, puis ouvrez un nouveau terminal et vérifiez gpg --version. Installer un outil n’est pas nécessaire si vous disposez déjà d’un gpg utilisable.

Ouvrez le terminal dans le dossier des trois fichiers. Créez-y un dossier vide ubuntu-verify-keys : sous Linux, mkdir -m 700 ubuntu-verify-keys ; sous Windows, la commande Nouveau dossier de l’Explorateur convient. Si ce nom existe déjà, choisissez un nouveau nom et adaptez tous les --homedir. Cette séparation évite de mélanger les clés publiques de ce contrôle avec votre trousseau habituel ; elle ne contient aucun mot de passe ou clé privée à fournir.

Les commandes gpg ci-dessous s’utilisent dans un shell Linux ou PowerShell lorsque le programme externe est disponible. Elles importent une clé publique dans le dossier indiqué :

gpg --homedir ./ubuntu-verify-keys --keyserver hkps://keyserver.ubuntu.com --recv-keys 843938DF228D22F7B3742BC0D94AA3F0EFE21092
gpg --homedir ./ubuntu-verify-keys --fingerprint 843938DF228D22F7B3742BC0D94AA3F0EFE21092

Comparez les 40 caractères avec l’empreinte publiée par Ubuntu pour Ubuntu CD Image Automatic Signing Key (2012) :

8439 38DF 228D 22F7 B374  2BC0 D94A A3F0 EFE2 1092

Les espaces servent à la lecture. Le nom de la clé et un identifiant court ne suffisent pas ; un serveur de clés fournit une clé sans garantir à lui seul l’identité de son propriétaire. Si Ubuntu change de clé ou si la signature indique une autre clé, revenez aux instructions officielles actuelles au lieu d’importer aveuglément l’identifiant d’un message d’erreur.

Vérifier la signature de SHA256SUMS

gpg --homedir ./ubuntu-verify-keys --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS

Le premier fichier est la signature détachée, le second les données signées. Examinez le résultat Good signature, l’identité de la clé et son empreinte, puis le code de sortie de la commande. Les textes et dates peuvent varier selon la langue et la signature.

Dans un shell Linux, lisez le code immédiatement après gpg, avant toute autre commande :

printf 'exit=%s\n' "$?"

Dans PowerShell, utilisez à la place :

$LASTEXITCODE

La valeur attendue pour un contrôle réussi est 0. Un avertissement du type This key is not certified with a trusted signature concerne la confiance attribuée à la clé dans le trousseau ; il diffère d’un BAD signature, qui signale un échec cryptographique. Ne créez pas artificiellement une confiance ultime pour faire disparaître le message : vérifiez l’empreinte complète avec la source officielle.

No public key demande de vérifier la clé importée et le dossier --homedir. BAD signature demande de vérifier l’association des deux fichiers, leur contenu et un éventuel téléchargement HTML. Téléchargez de nouveau la liste et la signature depuis le répertoire officiel si nécessaire. Ne poursuivez pas comme si l’origine de la liste était établie tant que l’échec n’est pas résolu. Le manuel GnuPG de --verify recommande de fournir explicitement signature et données pour ce type de contrôle.

Comparer le SHA-256 dans Windows PowerShell

Cette section et la suivante sont deux solutions de comparaison : utilisez celle de votre système. Dans PowerShell, ouvrez le dossier de travail puis vérifiez Get-Location et Get-ChildItem. Adaptez uniquement le nom de l’image au fichier réellement téléchargé. Le code exige exactement une ligne correspondante dans la liste authentifiée et compare l’empreinte complète :

$isoName = 'ubuntu-26.04.1-live-server-amd64.iso'
$pattern = '^([0-9A-Fa-f]{64}) [ *]' + [regex]::Escape($isoName) + '$'
$entries = @(Get-Content -LiteralPath '.\SHA256SUMS' -ErrorAction Stop | Where-Object { $_ -match $pattern })
if ($entries.Count -ne 1) {
    throw 'Expected exactly one matching checksum entry.'
}
$expected = ($entries[0] -split '\s+', 2)[0]
$actual = (Get-FileHash -LiteralPath $isoName -Algorithm SHA256 -ErrorAction Stop).Hash
if ($actual -ieq $expected) {
    'SHA-256 MATCH'
} else {
    throw 'SHA-256 MISMATCH: do not use this image.'
}

SHA-256 MATCH indique l’égalité. Une erreur sur le nombre de lignes signifie que le nom est absent ou ambigu ; ce n’est pas encore une différence de contenu. SHA-256 MISMATCH indique que le fichier ne correspond pas à la somme attendue. L’option -LiteralPath traite le nom littéralement ; -Algorithm choisit explicitement SHA256 et -ieq ignore seulement la casse des caractères hexadécimaux. Le manuel Get-FileHash décrit ce calcul.

Comparer le SHA-256 dans un terminal Linux

Placez-vous dans le dossier contenant l’ISO, la liste et sa signature. Confirmez la position avec pwd et les fichiers avec ls. Vérifiez que sha256sum --help propose --check et --ignore-missing, puis exécutez :

sha256sum --check --ignore-missing SHA256SUMS
printf 'exit=%s\n' "$?"

--check lit les sommes attendues dans la liste. --ignore-missing ignore les fichiers mentionnés qui ne sont pas présents dans votre dossier, ce qui évite de devoir télécharger toutes les images de la liste. Cette option n’autorise pas un fichier présent à avoir une mauvaise somme.

Pour l’exemple retenu, attendez une ligne ubuntu-26.04.1-live-server-amd64.iso: OK et un code 0. Une autre image marquée OK ne valide pas celle que vous voulez utiliser. Avec GNU sha256sum, aucun fichier vérifiable ou une somme incorrecte entraîne un échec ; un fichier qui n’est pas cité dans la liste n’est pas contrôlé automatiquement. Si vous ne retrouvez pas le nom voulu dans les résultats, revenez à la sélection de l’image et du répertoire.

Vous n’avez pas besoin de comparer le même fichier sur Windows puis Linux. En revanche, comparer son hash dans l’un ou l’autre système ne remplace jamais la vérification préalable de la signature de la liste.

Traiter un échec et conserver le résultat utile

Symptôme Vérification Action
Nom ISO absent ou plusieurs entrées Nom exact, version ponctuelle, architecture et fichier de sommes. Retrouvez la liste officielle correspondant à l’image ; n’inventez pas une somme pour contourner l’erreur.
Hash différent Téléchargement terminé, fichier modifié ou mauvais fichier choisi. N’utilisez pas cette ISO ; récupérez le bon fichier et répétez le contrôle.
Clé publique introuvable Dossier de clés identique dans les commandes et empreinte officielle. Récupérez la bonne clé publique dans le dossier prévu.
Signature incorrecte Liste et signature de même répertoire, fichiers non réenregistrés ou remplacés par du HTML. Reprenez les deux fichiers officiels et recommencez par leur signature.

Gardez dans votre fiche le nom exact de l’ISO, son répertoire de téléchargement, l’empreinte de la clé attendue et les deux résultats. Sélectionnez ensuite dans la VM le fichier réellement vérifié. Cette étape ne choisit pas le disque d’installation : l’écriture d’une clé USB et le partitionnement restent des opérations distinctes qui demandent d’identifier leur destination.