Here’s a common scenario: you need to make an emergency remote desktop connection to an XP server at work, but you’re at home and the server is behind a firewall that blocks RDC connections.
In a nutshell, ssh tunneling allows you to connect to a port on another machine by forwarding traffic through an intermediary ssh server. Using an ssh tunnel, if you have access to an ssh server behind the firewall, you can connect to services on other machines behind the firewall, including remote desktop services.
Using Putty (a rockstar ssh client for Windows), you can easily set up a tunnel for accessing RDC on your firewalled server:
- Configure a new ssh session for the ssh server that you have access to (126.96.36.199 in this example).
- In the connection/ssh/tunnels menu, add a new forwarded port. You’ll need to set up a port on your own machine (this will be the virtual, forwarded connection to the remote RDC server), so use something unused, like 3390.
- In the destination field, enter the ip address and RDC port for the firewalled machine, Ie. 192.168.0.5:3389 (3389 is what RDC listens on)
- Now save your session and connect to the SSH server
At this point, you can connect to the remote server’s RDC port via your own machine’s port 3390. Everything that comes in and out of localhost:3390 will be transparently whisked away over the ssh connection, through the intermediary machine, to your destination server’s port 3389. So instead of entering 192.168.0.5:3389 for your destination server in the remote desktop client, enter localhost:3390. It will go right through the firewall.