diff options
author | lassulus <lassulus@lassul.us> | 2021-09-22 11:24:32 +0200 |
---|---|---|
committer | lassulus <lassulus@lassul.us> | 2021-09-22 11:24:32 +0200 |
commit | 9472181f2880c3558fcc80439cd9b92ef2b3b086 (patch) | |
tree | 56f85254686e91a084c3f044ac7a7137dfedfc33 /lass/5pkgs/sshify | |
parent | a324b1add1f7b8b14ae7309840915f238e0985e2 (diff) |
l sshify: init
Diffstat (limited to 'lass/5pkgs/sshify')
-rw-r--r-- | lass/5pkgs/sshify/default.nix | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/lass/5pkgs/sshify/default.nix b/lass/5pkgs/sshify/default.nix new file mode 100644 index 000000000..aba0ab6bb --- /dev/null +++ b/lass/5pkgs/sshify/default.nix @@ -0,0 +1,38 @@ +{ pkgs }: +pkgs.writers.writeBashBin "sshify" '' + set -efu + + TMPDIR=$(mktemp -d) + + SSH_ARGS=() + + while [[ "$#" -gt 0 ]]; do + case $1 in + --) + shift + break + ;; + *) + SSH_ARGS+=($1) + ;; + esac + shift + done + + if [[ "$#" -le 0 ]]; then + echo no command specified + exit 1 + fi + + RANDOM_HIGH_PORT=$(shuf -i 20000-65000 -n 1) + + cat << EOF >$TMPDIR/proxychains.conf + [ProxyList] + socks4 127.0.0.1 $RANDOM_HIGH_PORT + EOF + + ssh -fNM -S "$TMPDIR/socket" -D "$RANDOM_HIGH_PORT" "''${SSH_ARGS[@]}" + trap "ssh -S $TMPDIR/socket -O exit bla 2>/dev/null; rm -rf $TMPDIR >&2" EXIT + + ${pkgs.proxychains-ng}/bin/proxychains4 -q -f "$TMPDIR/proxychains.conf" "$@" +'' |