Inicio > Programación > Script para crear un tunel con un servidor SSH remoto

Script para crear un tunel con un servidor SSH remoto

viernes, 12 diciembre 2008

Hola,

desde hace tiempo empleo a diario túneles ssh para conexión a distintos equipos. Normalmente suelo usar el putty para crear los túneles ya que tengo configurada para cada conexión los túneles que puedo usar, pero a veces necesito crear una conexión rapida a un puerto que no tengo configurado en putty. Para ello tengo un pequeño script en bash para crear el túnel pasandole la ip y los puertos remoto y local. Dentro del script tiene como variables el usuario (que lo dejo fijo) y la ip pública o privada (para LAN) del servidor SSH.

Os lo dejo aquí y espero que os sea de utilidad. En mi caso este es el scrip básico que modifico para distintos servidores.

#!/bin/bash
#
# ****************************************************************************************

# tunel_ssh.sh

# Script que nos permite crear un tunel con un servidor SSH remoto.
#
#
# (c) Diciembre 2008 Carlos Fco. Andión López
#
# Nos pedirá la IP de la máquina en la red remota a la que nos queremos coenctar,
# el puerto remoto y el puerto local con el que queremos hacer el tunel.
#
# Se pasa el parámetro -N a la conexión para evitar la ejecución de comandos remotos
#
# Para hacer un mapeado a puertos locales privileguiados (inferiores al 1024) es necesario
# ejecutar el script como root

# tunel_ssh.sh is free software; you can redistribute it and/or modify it under the terms of
# the GNU General Public License as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# tunel_ssh.sh is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
# ****************************************************************************************

#variables de conexión
SERVER="ip_publica_servidor"
USUARIO="mi_usuario"

echo "************************************************************************"
echo "*                                                                      *"
echo "* Creando tunel SSH con $SERVER"
echo "*                                                                      *"
echo "************************************************************************"

# IP de la máquina en la red remota
echo "¿IP en la red remota?"
read IP

# Puerto remoto con el que queremos crear el tunel
echo "¿Puerto remoto?"
read RPORT

# Puerto local al que nos conectaremos
echo "¿Puerto local?"
read LPORT

echo "************************************************************************"
echo ""
echo "Creando el tunel SSH con la IP remota $IP:$RPORT a localhost:$LPORT en $SERVER"
echo ""
echo "************************************************************************"

read -p "Pulse una tecla para iniciar la conexión "

ssh -v -L$LPORT:$IP:$RPORT $USUARIO@$SERVER -N

Categorías: Programación Etiquetas: ,