Dépôt hors ligne
Vérifier un dépôt hors ligne avec la clé publique de version, installer ses paquets par rôle et signer un dépôt sur une machine hors ligne.
Un dépôt hors ligne est le répertoire kyvernon-<version>/ qui contient les paquets et l'index depot.json. Il permet d'installer et de mettre à niveau des serveurs sans accès à Internet. Vérifiez-le avec la clé publique de version de Kyvernon, que vous obtenez auprès de Kyvernon et non dans le dépôt. L'installateur n'accepte pas la clé venant du dépôt lui-même (la copie sous keys/ ne sert qu'à la comparaison) : l'intérêt de la signature est que le dépôt ne peut pas se porter garant de lui-même.
Contenu du dépôt
| Chemin | Contenu |
|---|---|
depot.json | L'index : produit, version, architecture et, pour chaque fichier, son chemin, sa taille, son SHA-256 et les rôles qui l'utilisent |
depot.json.minisig | La signature de l'index (format minisign, Ed25519) |
SHA256SUMS | Les sommes de contrôle de tous les autres fichiers ; son propre hachage figure dans l'index |
kyvernon-install | Le script d'installation |
deb/ | Les quatre paquets Kyvernon : contrôleur, agent, VMM et client en ligne de commande |
deps/ | Facultatif : paquets de la distribution dont les hôtes ont besoin lorsqu'ils n'ont pas de miroir |
sbom/ | Nomenclatures logicielles au format CycloneDX |
keys/ | Une copie de la clé publique de version, pour comparaison uniquement |
Les rôles sélectionnent les paquets. controller installe le contrôleur et le client en ligne de commande, agent installe l'agent d'hôte, le VMM et les paquets de deps/, cli installe uniquement le client en ligne de commande. all installe tout.
Avant de commencer
- Le répertoire du dépôt et, séparément, la clé publique de version.
- Pour les commandes
kyvernon depot, le paquetkyvernon-cliest installé. Le scriptkyvernon-installdu dépôt fonctionne sans lui. - Un accès root pour l'installation. La vérification ne demande aucun privilège.
Vérifier le dépôt
Copiez le dépôt sur le serveur, puis vérifiez-le en tant qu'utilisateur normal.
Avec la CLI
cd kyvernon-0.1.0
./kyvernon-install --verify-only --pubkey /path/to/release-signing.minisign.pubou, avec le client en ligne de commande :
kyvernon depot verify kyvernon-0.1.0 --pubkey /path/to/release-signing.minisign.pubLes deux vérifient la signature de l'index, puis la taille et la somme de contrôle de chaque fichier, et refusent un répertoire contenant des fichiers que l'index ne liste pas, ou des liens symboliques. Le script affiche depot ok en cas de succès ; pour toute autre sortie, arrêtez-vous et contactez votre fournisseur. Si vous préférez l'outil standard, minisign -Vm depot.json -p release-signing.minisign.pub vérifie la même signature.
Le client en ligne de commande cherche la clé dans cet ordre : --pubkey, la variable d'environnement KYVERNON_DEPOT_PUBKEY, /etc/kyvernon/release-signing.minisign.pub, /usr/share/kyvernon/keys/release-signing.minisign.pub, puis la clé intégrée au binaire. Le script utilise les trois premières. Un --pubkey situé dans le répertoire du dépôt est refusé.
Installer depuis le dépôt
Installez par rôle. La vérification s'exécute d'abord, et dpkg ne reçoit que des copies vérifiées des paquets : rien de ce qui a changé dans le répertoire après la vérification n'est donc installé.
Avec la CLI
sudo ./kyvernon-install --role controller --pubkey /path/to/release-signing.minisign.pub
sudo ./kyvernon-install --role agent --pubkey /path/to/release-signing.minisign.pubAvec le client en ligne de commande, kyvernon depot install fait la même chose ; --dry-run affiche la commande dpkg et n'exécute rien :
sudo kyvernon depot install kyvernon-0.1.0 --role agent \
--pubkey /path/to/release-signing.minisign.pub --dry-runUn hôte sans les paquets de la distribution ovmf ou swtpm fait échouer dpkg avec la liste de ce qui manque. Installez-les depuis votre miroir, ou utilisez un dépôt qui les fournit dans deps/, puis relancez la commande. La première installation est décrite dans Installer depuis un dépôt hors ligne ; une nouvelle version dans Mise à niveau.
Signer un dépôt
Un dépôt se signe sur une machine hors ligne. La clé privée est une clé Ed25519 OpenSSL au format PKCS#8 et ne quitte jamais cette machine.
Avec la CLI
kyvernon depot sign kyvernon-0.1.0 --key /path/to/release-signing.pem
kyvernon depot pubkey --key /path/to/release-signing.pemdepot sign écrit depot.json.minisig à côté de l'index. La signature couvre un commentaire de confiance qui nomme la version par défaut ; --comment en définit un autre. depot pubkey affiche la clé publique au format minisign et son identifiant de clé, soit les 8 premiers octets du SHA-256 de la clé publique. Avec --pubkey à la place de --key, il affiche l'identifiant de clé d'un fichier de clé publique, ce qui permet de comparer la clé que vous détenez à l'identifiant publié par le fournisseur.
Résultat
Un dépôt vérifié se termine par depot ok. Après une installation, les paquets sont en place et aucun service n'est encore démarré.
Voir aussi
Version 0.1. Dernière modification : 2026-11-13