Compare commits

..

2 commits

View file

@ -7,7 +7,7 @@
}: }:
let let
inherit (lib) types; inherit (lib) types;
controlDir = "~/.ssh/controlmasters"; controlSocket = "~/.ssh/controlmasters/%C.sock";
proxyTagType = types.submodule ( proxyTagType = types.submodule (
{ name, ... }: { name, ... }:
@ -84,7 +84,7 @@ in
hashKnownHosts = false; hashKnownHosts = false;
userKnownHostsFile = "~/.ssh/known_hosts"; userKnownHostsFile = "~/.ssh/known_hosts";
controlMaster = "no"; controlMaster = "no";
controlPath = "${controlDir}/%r@%n:%p"; controlPath = controlSocket;
controlPersist = "no"; controlPersist = "no";
}; };
} }
@ -93,10 +93,11 @@ in
tag: tagDef: tag: tagDef:
let let
dependency = if tagDef.after != null then lib.hm.dag.entryAfter tagDef.after else lib.id; dependency = if tagDef.after != null then lib.hm.dag.entryAfter tagDef.after else lib.id;
escapeOpensshConfig = builtins.replaceStrings ["%"] ["%%"];
in in
lib.nameValuePair "tagged-${tag}" { lib.nameValuePair "tagged-${tag}" {
match = ''tagged="${tag}"''; match = ''tagged="${tag}"'';
proxyCommand = "${lib.getExe pkgs.fc-scripts.ssh-multi-proxy} -v -p connect --control-path='${controlDir}'${lib.optionalString tagDef.noDirect " -n"} -i ${lib.concatStringsSep "," tagDef.connectType}${ proxyCommand = "${lib.getExe pkgs.fc-scripts.ssh-multi-proxy} -v -S ${config.programs.ssh.package}/bin/ssh -p connect${lib.optionalString tagDef.noDirect " -n"} --control-path='${escapeOpensshConfig controlSocket}' -i ${lib.concatStringsSep "," tagDef.connectType}${
lib.optionalString (tagDef.jumpHost != null) " -j ${tagDef.jumpHost}" lib.optionalString (tagDef.jumpHost != null) " -j ${tagDef.jumpHost}"
} %h %p"; } %h %p";
extraOptions = { extraOptions = {