aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2025-12-09 14:38:05 +0100
committertv <tv@krebsco.de>2025-12-09 15:25:19 +0100
commita753c741e741d2a2edca190130e5b20a57c33773 (patch)
tree74c5eddd1120238babc59131f93fbd2c552666ec
parent9fa32e89f56b95ec0d7042293bf097939e572187 (diff)
populate: use ssh control socket1.30.0
-rw-r--r--pkgs/populate/default.nix18
1 files changed, 12 insertions, 6 deletions
diff --git a/pkgs/populate/default.nix b/pkgs/populate/default.nix
index c526dfb..a5b3ebe 100644
--- a/pkgs/populate/default.nix
+++ b/pkgs/populate/default.nix
@@ -268,12 +268,16 @@ let
${ssh' target} ${quote target.host} ${quote command}
'';
- ssh' = target: concatMapStringsSep " " quote (flatten [
- "${openssh}/bin/ssh"
- (mkUserPortSSHOpts target)
- "-T"
- target.extraOptions
- ]);
+ ssh' = target: writers.writeDash "ssh-wrapper" ''
+ exec ${openssh}/bin/ssh \
+ ${concatMapStringsSep " " quote (mkUserPortSSHOpts target)} \
+ -o ControlMaster=auto \
+ -o ControlPath="$TMPDIR"/ssh-%r@$h:%p.sock \
+ -o ControlPersist=1h \
+ -T \
+ ${concatMapStringsSep " " quote target.extraOptions} \
+ "$@"
+ '';
in
@@ -290,4 +294,6 @@ writers.writeDash "populate.${target.host}" ''
set -x
${optionalString backup (do-backup { inherit target; })}
${concatStringsSep "\n" (mapAttrsToList (populate target) source)}
+
+ ${ssh' target} -q -O stop dummy
''