Ssh-tunnel

Aus xinux.net
Zur Navigation springen Zur Suche springen

Beipielskript für einen ssh-Tunnel

#!/bin/bash
SSH=/usr/bin/ssh
SSHTUNNEL=$(netstat -ltnp | grep ssh | grep -v ":22"  | cut -f 2 -d : | tr -s " " | cut -f 1 -d " ")
case $1 in

 start)
   shift
   # -f  gehe in den hintergrund
   # -g  lausche auf allen interfaces
   # -N  fuehre kein remote-kommandos aus
   # -l  benutzer
   # -L  lokaler tunnelmodus

   LOCALPORT=$2
   ZIEL=$3
   ZIELPORT=$4
   SSHSERVER=$1
   if test "$#" -eq 4
   then
     $SSH   -f -g -N  -l root $SSHSERVER -L $LOCALPORT:$ZIEL:$ZIELPORT
   else
     echo "Die Syntax lautet: $0 start sshserver localport zielrechner zielport"
   fi
 ;;

list)
 set $SSHTUNNEL
 COUNT=1
 while [ $# -ne "0" ]
 do
 echo  "Tunnel $COUNT =  Forward Port $1"
 shift
 COUNT=$(($COUNT+1))
 done
;;

kill)
 shift
 if test "$#" -eq "1"
 then
   SHIFT=$1
   set $SSHTUNNEL
   if test $# -ge  $SHIFT
    then
     shift $(($SHIFT-1))
     fuser -kn tcp $1
    else
    echo "kein TUNNEL"
   fi
else
   echo "Die Syntax lautet: $0 kill TUNNEL" 
fi
;;
*)
echo "Die Syntax lautet: start|list|kill"
;;
esac