33 lines
604 B
Nix
33 lines
604 B
Nix
# ~/.ssh/config
|
|
{
|
|
systemConfig,
|
|
systems,
|
|
common,
|
|
...
|
|
}:
|
|
with builtins;
|
|
|
|
{
|
|
programs.ssh = {
|
|
enable = true;
|
|
matchBlocks = listToAttrs (
|
|
map (system: {
|
|
name = system.hostName;
|
|
value =
|
|
let
|
|
hostName =
|
|
if (system ? address && system.address ? tailnet) then
|
|
system.address.tailnet
|
|
else
|
|
common.tailnetAddr system.hostName;
|
|
in
|
|
{
|
|
port = 22;
|
|
user = systemConfig.username;
|
|
hostname = hostName;
|
|
};
|
|
}) systems
|
|
);
|
|
};
|
|
}
|