sexta-feira, 29 de novembro de 2013

Estabelece um tunel ssh com o servidor de Destino automaticamente ( Linux )


#!/bin/sh
#
# Estabelece um tunel ssh com o servidor de Destino automaticamente
#
# - Devera ser configurado no crontab para que o programa seja
#   inicializado a cada 5 minutos com usuario: admin
#   # m  h dom mon dow  user    command
#    */5 *  *   *   *   admin   /usr/scripts/tunel-ssh
#
# - gerar uma chave publica do ssh para o usuario admin e 
#   copiar a chave para o arquivo /home/admin/.ssh/known_hosts 
#   do servidor.
#

#
DIR=hussmann                            # diretorio no SERV onde fica o controle
CONTROLEACESSO=controle_acesso          # arquivo de controle
SCP=/usr/bin/scp
SSH=/usr/bin/ssh
USERREMOTO=admin                        # usuario para conexao 
HOSTREMOTO=999.999.999.999              # Ip do servidor de Destino
PORTA=2222                              # porta para estabelecimento do tunel

# Obtem o PID do ssh caso o tunel ja esteja estabelecido
SSHPID=`ps ax | grep $PORTA | grep -v grep | cut -d " " -f 2`

# Verifica arquivo de controle no servidor remoto
$SCP $USERREMOTO@$HOSTREMOTO:~/$DIR/$CONTROLEACESSO /tmp/$CONTROLEACESSO > /dev/null 2> /dev/null
LIBERADO=`cat /tmp/$CONTROLEACESSO`
if [ "$LIBERADO" = "0" ]; then

   # Se o tunel estiver estabelecido, mata o processo
   if [ "${SSHPID}" != "" ]; then
      kill -9 $SSHPID
   fi

   exit 0

fi

# Se o tunel estiver estabelecido, sai sem fazer nada
if [ "${SSHPID}" != "" ]; then
   exit 0
fi

$SSH -f -l $USERREMOTO -N -R $PORTA:127.0.0.1:22 $HOSTREMOTO


Nenhum comentário:

Postar um comentário