We have various customers that have firewalls that only allow known trusted IP addresses through. Normally our office and our monitoring platform for example.
But if we are out and about we still sometimes need to access a system and its GUI, so we have created the simple script below that makes a ssh connection to the customer server and also tunnel to access any web gui.
This script is in place on the monitoring server so we can just ssh in to the monitoring platform and run the script. all that is needed is a single tunnel setup on the ssh client that i’m accessing the monitoring platform from.
#!/bin/bash echo ssh tunnel tool. 2013 cyber-cottage.co.uk echo Setting up a tunnel to $1 whois $1 |grep netname if [ "$1" = '' ]; then echo "You have no remote destination set" echo "usage: remotetunnel.sh <remote server> <remote ssh port> <remote system port>" echo "For example remotetunnel.sh 81.22.23.24 8022 80" exit fi if [ "$3" = '' ]; then echo "usage: remotetunnel.sh <remote server> <remote ssh port> <remote system port>" echo "For example remotetunnel.sh 81.22.23.24 8022 80" if [ "$2" = '' ]; then echo "You have no remote ssh or system port set, Setting ssh to port 22" port="22" else port="$2" fi echo "You have no remote system port set, Setting remote to port 80" rport="80" else rport="$3" fi if [ "$port" = '' ]; then port=$2 fi echo Remote system IP is $1 echo Remote ssh port is $port echo Remote system port is $rport read -p "Is this correct? (y/n) " RESP if [ "$RESP" = "y" ]; then echo "Glad to hear it" else exit fi ssh -L 9999:localhost:$rport $1 -oport=$port