Add forward-local-port
This commit is contained in:
parent
fe6716c2f0
commit
dbb41dd29e
11
.config/zsh/completions/_forward-local-port
Normal file
11
.config/zsh/completions/_forward-local-port
Normal file
|
@ -0,0 +1,11 @@
|
|||
#compdef forward-local-port
|
||||
|
||||
_arguments '-h[short help text]' \
|
||||
'--help[short help text]' \
|
||||
'--local-port[local port to forward]:port:' \
|
||||
'--remote-port[remote port to listen on]:port:' \
|
||||
'1:host:_ssh_hosts'
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# End:
|
23
.config/zsh/functions/forward-local-port
Executable file
23
.config/zsh/functions/forward-local-port
Executable file
|
@ -0,0 +1,23 @@
|
|||
#!/usr/bin/env zsh
|
||||
# Forward a local port to a server via SSH tunnel.
|
||||
|
||||
setopt LOCAL_OPTIONS ERR_RETURN NO_UNSET PIPE_FAIL
|
||||
|
||||
zmodload zsh/zutil
|
||||
local -a o_help=()
|
||||
local -a o_lport=()
|
||||
local -a o_rport=()
|
||||
zparseopts -D -K -- h=o_help -help=o_help -local-port:=o_lport -remote-port:=o_rport
|
||||
if [[ ${#o_help} -ne 0 || ! -v 1 || ${#o_lport} -ne 2 || ${#o_rport} -ne 2 ]]; then
|
||||
local ret=$(( ${#o_help} ^ 1 ))
|
||||
print -u $(( 1 + ${ret} )) "usage: ${0} [-h|--help]" \
|
||||
"--local-port <PORT> --remote-port <PORT> <HOST>"
|
||||
return ${ret}
|
||||
fi
|
||||
local host=${1}
|
||||
local lport=${o_lport[2]}
|
||||
local rport=${o_rport[2]}
|
||||
|
||||
print -P "%F{12}Forwarding local port%f %F{13}${lport}%f %F{12}over SSH tunnel" \
|
||||
"to%f" "%F{13}${host}%f %F{12}port%f %F{13}${rport}%f %F{12}…%f"
|
||||
ssh -R ${rport}:"[::1]":${lport} -N -T ${host}
|
Loading…
Reference in New Issue
Block a user