You may have already read the Goto My PC for FREE tutorial. In this tutorial I explained how you make a secure remote desktop connection to a PC using the free software SSH, VNC and Putty.
In reponse to this I received a following question:
I first I said that this was not possible. Then I realised that tunneling can also work in reverse.I would like to access a PC that resides on an internal network. I do not administer this network, therefore I cannot forward connections on port 443 to the PC.
In this tutorial I will demonstrate how to use a reverse (remote) tunnel, to make a secure remote desktop connection to a PC which is behind a Firewall which you have no control over. This is typically the case if you are attempting to acces a PC which resides on a corparate network.
This setup requires several pieces of software, all of which are free and can be downloaded.
FreeSSHD - Allows you to make a secure remote connection to a windows PC and setup SSH tunnels, allowing other services to connect to your PC securely.
Putty - Putty is a Free SSH client for windows. We need this to connect to the SSH server on the remote PC. It will also allow us to transfer files between the two PC's.
VNC - VNC allows you to make a remote desktop connection to a PC, as if you were sitting in front of it. Download the free version.
Setting Up the SSH Server
SSH is an acronym for Secure Shell. It was developed for UNIX to enable administrators to log into a server remotly from anywhere with an internet connection and control it. SSH remains today the remote connection method of choice for UNIX and Linux savys.
FreeSSHD, is an SSH server for Windows. It in effect allows you to connect to your machine via the command line similar to a telnet connection, but, securely. More importantly however and the feature we will be using, it allows you tunnel connections through SSH to you local computer.
What is Tunneling?
As the name suggests, it is setting up a tunnel but for connections between machines. Once connected to a mahine via SSH, we can tunnel other connections through the secure SSH connection to the remote PC. To the remote PC, it appears as if the connection has originted locally. To the connecting PC, it appears as if the connection is being made locally.
Why do this? Obviously a remote desktop connection is not something we want everyone to access. The standard VNC connnection is not encrypted. However, send it through an SSH tunnel and the connection is encrypted, secure and password protected.
What is Reverse (Remote) Tunneling?
Reverse tunneling is exactly the same as normal tunneling. However, instead of tunneling connections from the client to the SSH sever; connections from the server are tunneled through to the client.
This means the server can access services such as VNC on any client which is connected via SSH and has remote tunneling set up.
Before I start, a few definitions:
- Remote PC - this is the computer that resides behind the firewall, prehaps on a corprate network. You want to be able to make a secure remote dekstop connection to this PC.
- Server - The server is a PC which resides on a network you have control over such as a home PC or LAN. You will be making a remote desktop connection to the remote pc from the server.