NixOS Workstations — v1.8 LAB
Cette branche valide un poste NixOS/KDE dont le compte utilisateur est géré par systemd-homed et dont le home est chiffré en LUKS2.
Parcours cible
localadm
│
└── nixos-rebuild switch
│
├── logiciels
├── systemd-homed
├── création automatique d'Alice
│ └── /home/alice.home → LUKS2
└── SDDM
│
▼
Alice se connecte avec
le mot de passe temporaire
│
▼
assistant première session
│
┌───────┼────────────┐
▼ ▼ ▼
nouveau PIN FIDO2 enrôlement
mot de vierge FIDO2 homed
passe
│
▼
home déverrouillable par
mot de passe OU YubiKey+PIN
Principes
localadmreste un compte NixOS classique d'administration locale.alicen'est jamais déclarée dansusers.users: elle appartient exclusivement àsystemd-homed.- Le déploiement précrée Alice automatiquement avant SDDM.
- Le home d'Alice est
/home/alice.home, conteneur LUKS2 monté sur/home/alicependant la session. - Aucun
pam_u2f. - Aucun
u2f-mappings. - La YubiKey démarre sans PIN ; Alice choisit son premier PIN.
- L'enrôlement FIDO2 est stocké dans le record
systemd-homed. - Le mot de passe reste un moyen de déverrouillage de secours.
Déploiement LAB
Le mot de passe temporaire est :
LaboTest@1980
Il est volontairement connu pour le laboratoire et n'est pas un secret de production.
Depuis localadm :
cd ~/nixos-workstations
sudo nixos-rebuild switch -I nixos-config="$PWD/configuration.nix"
Un simple nixos-rebuild build construit la génération mais ne l'active pas ; il ne peut donc pas exécuter la précréation du compte sur le système courant.
Première connexion
Alice sélectionne son compte dans SDDM et utilise le mot de passe temporaire. L'assistant se lance automatiquement et impose trois opérations réussies :
- remplacement du mot de passe temporaire ;
- création du premier PIN sur une YubiKey FIDO2 vierge ;
- enrôlement de cette YubiKey dans le home chiffré
systemd-homed.
Les secrets sont transmis aux helpers par stdin puis à homectl par le mécanisme CREDENTIALS_DIRECTORY. Aucun mot de passe ni PIN n'est placé dans les arguments de processus.
Recovery key
La v1.8 ne crée volontairement aucune recovery key avant ou pendant la première session. Cela évite le problème validé en LAB où homectl update demandait la recovery key existante lors de la synchronisation des clés de chiffrement.
L'ajout et l'escrow d'une recovery key d'administration feront l'objet d'une étape distincte.
SDDM et comptes homed sous NixOS
Le greeter SDDM reçoit explicitement le chemin des modules NSS NixOS :
services.displayManager.sddm.settings = {
Users = {
MinimumUid = 1000;
MaximumUid = 60513;
};
General = {
GreeterEnvironment =
"QT_WAYLAND_SHELL_INTEGRATION=layer-shell,LD_LIBRARY_PATH=${config.system.nssModules.path}";
};
};
Ce réglage est nécessaire sur le LAB pour que le greeter puisse énumérer Alice, dont l'UID systemd-homed est dans la plage 60001–60513.
Arborescence importante
configuration.nix
modules/
├── homed.nix
├── users.nix
├── security.nix
├── software.nix
└── workstation-setup.nix
workstation-setup/
├── CMakeLists.txt
├── org.raspot.nixosworkstations.setup.desktop
└── src/
├── CMakeLists.txt
├── Config.h.in
├── Main.qml
├── ProvisioningBackend.cpp
├── ProvisioningBackend.h
└── main.cpp
/etc/nixos/hardware-configuration.nix reste local au poste et n'est pas versionné dans le dépôt partagé.
État LAB
Le workflow doit encore être validé de bout en bout sur le poste réel avec la v1.8. Ne pas considérer cette archive comme une version production.