{ config, lib, ... }: { imports = [ ]; options.me = { sshd.enable = lib.mkOption { type = lib.types.bool; default = false; example = true; description = "Whether we want to install sshd."; }; }; config = lib.mkIf config.me.sshd.enable { services.openssh = { enable = true; settings = { PasswordAuthentication = false; KbdInteractiveAuthentication = false; # ClientAliveInterval = 120; # ClientAliveCountMax = 3; # TCPKeepAlive = "yes"; # Default is yes }; hostKeys = [ { path = "/persist/ssh/ssh_host_ed25519_key"; type = "ed25519"; } { path = "/persist/ssh/ssh_host_rsa_key"; type = "rsa"; bits = 4096; } ]; }; environment.persistence."/persist" = lib.mkIf (config.me.mountPersistence) { hideMounts = true; files = [ "/etc/ssh/ssh_host_rsa_key" "/etc/ssh/ssh_host_rsa_key.pub" "/etc/ssh/ssh_host_ed25519_key" "/etc/ssh/ssh_host_ed25519_key.pub" ]; }; }; }