Beryl::CLI::Unlock
Sous-commande beryl unlock <host> (étape H4 du chiffrement) :
importe et déchiffre les pools data chiffrés d'un host après un
reboot.
Routage par mode (depuis T3 — 28 avril 2026) :
-
mode ssh_unlock (Option C, défaut historique) — la clé du serveur (coffre
[tang]de la société, sinon~/.config/beryl/<société>/<domaine>/<host>.key, sinon--key-file) voyage via stdin SSH jusqu'àzfs load-key. Aucune dépendance Tang. -
mode tang (Option D) — délègue à
clevis-zfs unlocksur le serveur. Le binaire interroge Tang en interne, dérive la clé, la pousse àzfs load-key. Si Tang échoue (pool pas encore enrôlé juste après bootstrap, trop de Tang injoignables) et que la clé du poste existe, elle prend le relais :tang-enrollgarde la même clé ZFS (bind --use-existing-key), elle reste donc valable.
Flow général :
- Pour chaque pool data déclaré chiffré :
a.
zpool import -N <pool>si pas déjà importé. b. Selon le mode :- ssh_unlock :
zfs load-key <pool>avec clé locale via stdin. - tang :
clevis-zfs unlock --no-mount --dataset <pool>. c.zfs mount -a -l(côté beryl, garde le contrôle du mount).
- ssh_unlock :
- Idempotent : si le pool est déjà importé et la clé chargée, log « déjà déverrouillé » et passe au suivant.
- Actions
freebsd.after_unlock(host.yml :service: action) jouées dans l'ordre (service <s> <action>) si au moins une unité était verrouillée et que toutes sont désormais ouvertes. Rien si tout était déjà déverrouillé.
Voir zpool-encryption-architecture.adoc § « Le modèle SSH unlock »
pour le contexte complet.
Constants
Chemin attendu du binaire clevis-zfs côté serveur. Le
paquet security/clevis-zfs (recette tang-client) l'installe
là.
Class methods
Clé de --key-file : un fichier, ou - pour un tube (jamais au
clavier : la clé s'afficherait à l'écran). Blancs et majuscules tolérés
(clé recopiée du papier par groupes de 4). Un fichier lisible par
d'autres est accepté (clé de secours recopiée à la hâte) mais signalé.