What Is An SSH Tunnel
SSH tunneling is a method to create a secure connection between a local computer and a remote server over SSH. It is a kind of Port forwarding via SSH.
Since the traffic is encrypted it is quite safe to connect with a restricted server to manage a database or use any other services you need without opening a port on the firewall.
Read more details here https://www.ssh.com/ssh/tunneling/
Gnome SSH Tunnel Manager (gSTM)
gSTM (Gnome SSH Tunnel Manager) is a nice software with which you can easily create SSH tunnels.
gSTM (Gnome SSH Tunnel Manager) is not included in latest Ubuntu repos (available until Xenial 16.04).
SSH – The recommended way
Let’s try to create a tunnel with an example. It is easier than you think. We want to connect to standard PostgreSQL port 5432 on a remote server. This is not permitted by the firewall.
So we will create an SSH tunnel from the local 5433 port (or any other). We will then use our preferred software to connect to this local port.
Open the tunnel
To open a tunnel to port 5432 to remote_server from port 5433 in localhost:
ssh -fNg -L 5433:localhost:5432 username@remote_server_ip
Quick reference (
man ssh or read here for details):
|Requests ssh to go to background just before command execution.|
|Do not execute a remote command. This is useful for just forwarding ports (protocol version 2 only).|
|Allows remote hosts to connect to local forwarded ports. If used on a multiplexed connection, then this option must be specified on the master process.|
Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.
To close the tunnel
ps ax |grep 5433 kill process_id