45 lines
796 B
Nix
45 lines
796 B
Nix
|
{
|
||
|
config,
|
||
|
lib,
|
||
|
pkgs,
|
||
|
...
|
||
|
}:
|
||
|
with lib; let
|
||
|
cfg = config.local.sys.yubikey;
|
||
|
in {
|
||
|
options.local.sys.yubikey = {
|
||
|
enable = mkEnableOption "yubikey settings";
|
||
|
};
|
||
|
config = mkIf cfg.enable {
|
||
|
services = {
|
||
|
pcscd.enable = true;
|
||
|
udev.packages = [pkgs.yubikey-personalization];
|
||
|
};
|
||
|
|
||
|
environment.etc."pkcs11/modules/ykcs11".text = ''
|
||
|
module: ${pkgs.yubico-piv-tool}/lib/libykcs11.so
|
||
|
'';
|
||
|
|
||
|
programs.gnupg.agent = {
|
||
|
enable = true;
|
||
|
enableSSHSupport = true;
|
||
|
};
|
||
|
|
||
|
security.pam = {
|
||
|
services = {
|
||
|
login.u2fAuth = true;
|
||
|
sudo.u2fAuth = true;
|
||
|
};
|
||
|
|
||
|
u2f = {
|
||
|
enable = true;
|
||
|
control = "sufficient";
|
||
|
settings = {
|
||
|
debug = false;
|
||
|
cue = true;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|