{lib, ...}: with lib; let admins = { nerf = { hashedPassword = "$y$j9T$SJcjUIcs3JYuM5oyxfEQa/$tUBQT07FK4cb9xm.A6ZKVnFIPNOYMOKC6Dt6hadCuJ7"; sshKeys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEdA4LpEGUUmN8esFyrNZXFb2GiBID9/S6zzhcnofQuP nerf@nerflap2" ]; nixKeys = [ "nerflap2-1:pDZCg0oo9PxNQxwVSQSvycw7WXTl53PGvVeZWvxuqJc=" ]; }; gonne = { hashedPassword = "$6$EtGpHEcFkOi0yUWp$slXf0CvIUrhdqaoCrQ5YwtYu2IVuE1RGGst4fnDPRLWVm.lYx0ruvSAF2/vw/sLbW37ORJjlb0NHQ.kSG7cVY/"; sshKeys = [ "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIAhwkSDISCWLN2GhHfxdZsVkK4J7JoEcPwtNbAesb+BZAAAABHNzaDo= Gonne" ]; nixKeys = [ "gonne.mathebau.de-1:FsXFyFiBFE/JxC9MCkt/WuiXjx5dkRI9RXj0FxOQrV0=" ]; }; }; mkAdmin = name: { hashedPassword, sshKeys, ... }: { "${name}" = { isNormalUser = true; createHome = true; extraGroups = ["wheel"]; group = "users"; home = "/home/${name}"; openssh.authorizedKeys = {keys = sshKeys;}; inherit hashedPassword; }; }; mkNixKeys = _: {nixKeys, ...}: nixKeys; in { users.users = mkMerge (mapAttrsToList mkAdmin admins); nix.settings.trusted-public-keys = lists.concatLists (mapAttrsToList mkNixKeys admins); }