55 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  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;
 | 
						|
}
 |