aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2025-12-09 14:38:05 +0100
committertv <tv@krebsco.de>2025-12-09 14:53:48 +0100
commit35c0cd12b0e3094df7404d840f925c7b4aec57f3 (patch)
tree5d5660164ad1c6550afa0021997874eda800eb0c
parent9fa32e89f56b95ec0d7042293bf097939e572187 (diff)
populate: use ssh control socket
-rw-r--r--pkgs/populate/default.nix16
1 files changed, 10 insertions, 6 deletions
diff --git a/pkgs/populate/default.nix b/pkgs/populate/default.nix
index c526dfb..a16b6df 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