diff --git a/home/.bash_aliases b/home/.bash_aliases index 94b298b..01a74b0 100644 --- a/home/.bash_aliases +++ b/home/.bash_aliases @@ -48,40 +48,39 @@ function tunnel() { PORT_LOCAL=${2:-$PORT} HOP=${3:-$(jumphost $DEST)} - echo "Destination: $DEST:$PORT" - echo "Tunnelhost: $HOP" - echo "Local port: $PORT_LOCAL" - - if [ -z "$HOP" ] || [ -z "$PORT" ] || [ -z "$PORT_LOCAL" ]; then - echo "usage: $0 destination:port [local_port [tunnel_host]]" - return 1 - fi + [ -z "$HOP" ] || [ -z "$PORT" ] || [ -z "$PORT_LOCAL" ] && \ + { echo "usage: $FUNCNAME destination:port [local_port [tunnel_host]]"; return 1; } ssh $HOP -L $PORT_LOCAL:$DEST:$PORT -N -o ExitOnForwardFailure=yes -f PID=$(ssh $HOP -O check 2>&1 | sed -re "s/.*\(pid=(.*)\)+/\1/") + + echo "Destination: $DEST:$PORT" + echo "Tunnelhost: $HOP" + echo "Local port: $PORT_LOCAL" echo "SSH Tunnel PID: $PID" } function rdp-tunnel() { - IFS=: read DEST PORT <<<$1 - HOP=${2:-$(jumphost $DEST)} + PORT=3389 PORT_LOCAL=$((RANDOM%100+42325)) - if [ -z "$PORT" ]; then - PORT=3389 - fi + IFS=: read DEST PORT <<<$1 + HOP=${2:-$(jumphost $DEST)} - tunnel $DEST:$PORT $PORT_LOCAL $HOP - rdp localhost:$PORT_LOCAL + [ -z "$DEST" ] || [ -z "$HOP" ] && \ + { echo "usage: $FUNCNAME destination[:port] [tunnel_host]"; return 1; } + + tunnel $DEST:$PORT $PORT_LOCAL $HOP && rdp localhost:$PORT_LOCAL } function rdp() { + PORT=3389 + IFS=: read DEST PORT <<<$1 - if [ -z "$PORT" ]; then - PORT=3389 - fi + [ -n "$DEST" ] || \ + { echo "usage: $FUNCNAME destination:port"; return 1; } open rdp://full%20address=s:$DEST:$PORT }