22 lines
518 B
Nix
22 lines
518 B
Nix
{
|
|
lib,
|
|
config,
|
|
outputs,
|
|
paths,
|
|
...
|
|
}:
|
|
|
|
let
|
|
hosts = lib.attrNames outputs.nixosConfigurations;
|
|
keyPath = hostname: paths.hosts + "/${hostname}/ssh_host.pub";
|
|
hostsWithKeys = lib.filter (hostname: builtins.pathExists (keyPath hostname)) hosts;
|
|
in
|
|
{
|
|
config = lib.mkIf config.ssh.enable {
|
|
programs.ssh.knownHosts = lib.genAttrs hostsWithKeys (hostname: {
|
|
publicKeyFile = keyPath hostname;
|
|
extraHostNames = lib.optional (hostname == config.networking.hostName) "localhost";
|
|
});
|
|
};
|
|
}
|