{ config, ... }:
 
{
  services.openssh = {
    enable = true;
    startWhenNeeded = true;
    settings = {
      PasswordAuthentication = true;
      PermitRootLogin = "no";
      X11Forwarding = true;
    };
  };
 
  _.persist.files = map (key: key.path) config.services.openssh.hostKeys;
}
nixos
{ nixosConfig, config, ... }:
 
{
  programs.ssh = {
    enable = true;
    userKnownHostsFile = "${nixosConfig._.persist.root}${config.home.homeDirectory}/.ssh/known_hosts";
    controlMaster = "auto";
    controlPersist = "10m";
    serverAliveInterval = 300;
  };
}
home-manager