{ ... }: { programs.ssh = { enable = true; enableDefaultConfig = false; matchBlocks = let tb1 = "~/.ssh/id_ed25519.tb1"; in { # Defaults "*" = { # Configure sharing of multiple sessions over a single network connection. controlMaster = "auto"; # Specify path to the control socket used for connection sharing. controlPath = "~/.ssh/master-%r@%n:%p"; # Whether control socket should remain open in the background. controlPersist = "10m"; # Set default timeout in seconds after which response will be requested. serverAliveInterval = 15; # Whether the connection to the authentication agent (if any) will be forwarded to # the remote machine. forwardAgent = false; }; # HomeLab Machines "fs1" = { hostname = "fs1.t1.xyz"; identityFile = tb1; forwardAgent = true; }; "fs1.local" = { hostname = "192.168.50.100"; identityFile = tb1; forwardAgent = true; }; "tr1" = { hostname = "tr1.t1.xyz"; port = 22001; identityFile = tb1; forwardAgent = true; }; "tr1.local" = { hostname = "192.168.50.101"; identityFile = tb1; forwardAgent = true; }; "tr2" = { hostname = "tr1.t1.xyz"; port = 22002; identityFile = tb1; forwardAgent = true; }; "tr2.local" = { hostname = "192.168.50.102"; identityFile = tb1; forwardAgent = true; }; "zenwifi" = { hostname = "192.168.50.1"; identityFile = tb1; }; "teb" = { hostname = "teb"; identityFile = tb1; forwardAgent = true; }; "fix" = { hostname = "fix"; identityFile = tb1; forwardAgent = true; }; "teb-r" = { hostname = "fs1.t1.xyz"; port = 22003; identityFile = tb1; forwardAgent = true; }; # Cloud Machines "t1" = { hostname = "95.216.215.4"; identityFile = tb1; forwardAgent = true; }; "oc1" = { hostname = "64.181.254.177"; identityFile = tb1; forwardAgent = true; }; # Git Services "github.com" = { user = "git"; identityFile = tb1; }; "bitbucket.org" = { user = "git"; identityFile = tb1; }; "gitlab.com" = { user = "git"; identityFile = tb1; }; }; }; }