{ pkgs, lib, osConfig, ... }: let eduroam-active = pkgs.writeShellApplication { name = "eduroam-active"; runtimeInputs = with pkgs; [ networkmanager ]; text = '' nmcli -g GENERAL.STATE c s interface|grep -q -E '\bactiv' ''; }; in { programs.ssh = { enable = true; enableDefaultConfig = false; matchBlocks = { "bmo.uio.no-on-eduroam" = ( lib.mkIf (osConfig.system.name == "magicman") ( lib.hm.dag.entryBefore [ "bmo.uio.no" "*" ] { match = "host bmo.uio.no exec \"nmcli -g GENERAL.STATE c s eduroam|grep -q -E '\\bactiv'\""; hostname = "bmo.uio.no"; forwardAgent = false; serverAliveInterval = 30; controlMaster = "auto"; controlPath = "/run/user/%i/ssh-cm-%C"; } ) ); "bmo.uio.no" = lib.hm.dag.entryBefore [ "*" ] { hostname = "bmo.uio.no"; forwardAgent = false; proxyJump = "torjus@rlogin.uio.no"; serverAliveInterval = 30; controlMaster = "auto"; controlPath = "/run/user/%i/ssh-cm-%C"; }; "*" = { serverAliveInterval = 30; controlMaster = "auto"; }; }; }; services.ssh-agent.enable = true; }