{ ... }: { programs.ssh = { enable = true; matchBlocks = let tb1 = "~/.ssh/id_rsa.tb1.pub"; tb2 = "~/.ssh/id_rsa.tb2.pub"; 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/socket-%C"; # 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; }; "zenwifi" = { hostname = "192.168.50.1"; identityFile = tb1; }; # Cloud Machines "t1" = { hostname = "95.216.215.4"; identityFile = tb1; forwardAgent = true; }; "oc1" = { hostname = "64.181.254.177"; identityFile = tb1; forwardAgent = true; }; }; }; }