current
1{
2 lib,
3 den,
4 ...
5}: {
6 den.aspects.pardofelis.provides.ssh = {user, ...}: {
7 nixos = {config, ...}: {
8 vaultix.templates.ssh-host-pardofelis = {
9 content = ''
10 HostName ${config.vaultix.placeholder.hosts-pardofelis-ipv4}
11 '';
12 owner = user.userName;
13 };
14
15 vaultix.secrets.hosts-pardofelis-ipv4.file = ./ipv4.age;
16 };
17
18 homeManager = {osConfig, ...}: {
19 programs.ssh.extraConfig = let
20 meta = den.hosts.x86_64-linux.pardofelis;
21 port = lib.elemAt meta.sshPorts 0;
22 in ''
23 ${
24 if (osConfig.services.tailscale.enable)
25 then ''
26 Match Host pardofelis exec "nc -z -w 1 ${meta.tailscaleIpv4} ${toString port} 2>/dev/null"
27 HostName ${meta.tailscaleIpv4}
28 ''
29 else ""
30 }
31 Host pardofelis
32 Port ${toString port}
33 Include ${osConfig.vaultix.templates."ssh-host-pardofelis".path}
34 '';
35 };
36 };
37}