From 24572e5055fc587381f263df1bb82b5c32e808eb Mon Sep 17 00:00:00 2001 From: h7x4 Date: Mon, 31 Mar 2025 17:31:42 +0200 Subject: [PATCH] home/ssh: enable control master sockets --- home/programs/ssh/default.nix | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/home/programs/ssh/default.nix b/home/programs/ssh/default.nix index cbf8e80..ffab8c9 100644 --- a/home/programs/ssh/default.nix +++ b/home/programs/ssh/default.nix @@ -1,4 +1,8 @@ -{ config, ... }: +{ config, pkgs, ... }: +let + runtimeDir = "/run/user/${toString config.home.uid}"; + controlMastersDir = "${runtimeDir}/ssh-controlmasters"; +in { imports = [ ./home.nix @@ -16,5 +20,22 @@ config.sops.secrets."ssh/secret-config".path "mutable_config" ]; + + controlMaster = "auto"; + controlPersist = "10m"; + controlPath = "${controlMastersDir}/%r@%h:%p"; + }; + + systemd.user.services."ssh-create-controlmasters-dir" = { + Install.WantedBy = [ "default.target" ]; + Unit = { + Description = "Create directory to store SSH control master sockets"; + ConditionPathExists = "!${controlMastersDir}"; + }; + Service = { + Type = "oneshot"; + ExecStart = "${pkgs.coreutils}/bin/mkdir ${controlMastersDir}"; + Restart = "on-abort"; + }; }; }