{ config , pkgs , lib , ... }: let mkMatchBlock = { hostname }: { inherit hostname; user = "lucy"; # Use dynamically retrieved user identityFile = [ "/nix/persist/etc/ssh/id_ed25519" ]; port = 22; }; in { # Enable SSH client in Home Manager programs.ssh = { enable = true; # Define host-specific SSH configurations (match blocks) matchBlocks = { "shell.c-base.org" = mkMatchBlock { hostname = "shell.c-base.org"; }; "code.c-base.org" = mkMatchBlock { hostname = "code.c-base.org"; }; }; # Any extra SSH configuration options you want globally extraConfig = '' # Example of global settings Compression yes ServerAliveInterval 60 ''; }; }