From a2962229c6a81ac23a685d243fa43d83957b4fc4 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Wed, 8 Dec 2021 15:23:37 +0100 Subject: gkleen@sif: systemd-based ssh socks proxy --- overlays/sshpass-secret.nix | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 overlays/sshpass-secret.nix (limited to 'overlays') diff --git a/overlays/sshpass-secret.nix b/overlays/sshpass-secret.nix new file mode 100644 index 00000000..cfd19afe --- /dev/null +++ b/overlays/sshpass-secret.nix @@ -0,0 +1,26 @@ +final: prev: { + sshpassSecret = prev.writeScriptBin "sshpass-secret" '' + #!${final.zsh}/bin/zsh -e + + typeset -a cmd + cmd=() + + while + if [[ "$#" -le 0 ]]; then + echo "Insufficient arguments" >&2 + exit 2 + fi + arg="''${1}" + shift + do + [[ "''${arg}" == '--' ]] && break + user=''${arg%@*} + host=''${arg#*@} + exec {fdnum}< <(${final.gnome.libsecret}/bin/secret-tool lookup service sshpass host "''${host}" user "''${user}") + cmd+=(${final.sshpass}/bin/sshpass -d ''${fdnum} -P "''${user}@''${host}'s password:") + done + + cmd+=($@) + exec -a ''${cmd[1]} -- $cmd + ''; +} -- cgit v1.2.3