started SSH certs

This commit is contained in:
John Lancaster
2026-03-12 13:22:40 -05:00
parent 3bbe6d359e
commit 026f413e7b
4 changed files with 33 additions and 28 deletions

View File

@@ -19,18 +19,19 @@ in
inputs.home-manager.nixosModules.home-manager
nixos."${username}"
nixos.lxc
nixos.sudo
# nixos.sudo
nixos.zsh
nixos.docker
nixos.step-client
{
users.users."${username}" = {
extraGroups = [ "docker" ];
};
home-manager.users."${username}" = {
imports = with inputs.self.modules.homeManager; [
step-client
];
# imports = with inputs.self.modules.homeManager; [
# step-client
# ];
shell.program = "zsh";
docker.enable = true;
ssh.matchSets = {

View File

@@ -1,5 +1,13 @@
{ inputs, ... }:
{
flake.modules.nixos.step-client = { pkgs, config, ... }: {
imports = with inputs.self.modules.nixos; [ ssh ];
ssh.certificates = true;
home-manager.sharedModules = with inputs.self.modules; [
homeManager.step-client
];
};
flake.modules.homeManager.step-client = { pkgs, ... }: {
home.packages = with pkgs; [
step-cli

View File

@@ -3,27 +3,14 @@
security.sudo = {
enable = true;
extraRules = [{
groups = [ "wheel" ];
commands = [
{
command = "${pkgs.systemd}/bin/systemctl suspend";
options = [ "NOPASSWD" ];
}
{
command = "${pkgs.systemd}/bin/reboot";
options = [ "NOPASSWD" ];
}
{
command = "${pkgs.systemd}/bin/poweroff";
command = "ALL";
options = [ "NOPASSWD" ];
}
];
groups = [ "wheel" ];
}];
extraConfig = with pkgs; ''
Defaults:picloud secure_path="${lib.makeBinPath [
systemd
]}:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin"
'';
};
};
}

View File

@@ -3,17 +3,26 @@ let
userName = "john";
in
{
flake.modules.nixos.ssh = {
services.openssh = {
enable = true;
# require public key authentication for better security
settings.PasswordAuthentication = false;
settings.KbdInteractiveAuthentication = false;
flake.modules.nixos.ssh = { pkgs, config, lib, ... }: {
options = {
ssh.certificates = lib.mkEnableOption "Enable SSH certificates";
};
home-manager.sharedModules = with inputs.self.modules.homeManager; [
ssh
];
config = {
services.openssh = {
enable = true;
# require public key authentication for better security
settings.PasswordAuthentication = false;
settings.KbdInteractiveAuthentication = false;
};
programs.ssh.knownHosts = lib.mkIf config.ssh.certificates {
"192.168.1.*" = {
certAuthority = true;
publicKey = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNug18oLH0vZxnibXJzMJvTWFPZTnSlhCDDVi+rHhgnIum6ZXQ4SF+VHOOAM5BbzZmMKitNJ5lcrGP15Eur7DzQ=";
};
};
};
};
flake.modules.homeManager.ssh = { pkgs, config, lib, ... }: