SSH Tunnel for Remote Desktop via Intermediary Server
Solution 1:
This is what I do when I have a very similar problem (but mine is Linux via Linux and I use port 5901 for VNC):
First, we make it so that all connections to localhost:13389
on your laptop will go to the intermediate server (on port 3389):
laptop$ ssh -L 13389:localhost:3389 my_user@LINUX_SERVER_IP
Then, we make it so it that all connection to localhost:3389
on the intermediate server are forwarded to the PC behind the firewall (on port 3389):
my_user@LINUX_SERVER_IP$ ssh -L 3389:localhost:3389 'PRIVATE_DOMAIN\my_user'@PC_NAME
(note that this command is run inside the interactive shell on the intermediate server.)
Now, you should be able to connect to localhost:13389
and access port 3389 on the remote PC.
Debugging
Since it isn't working, there's a few things we can try. We'll do in a way to isolate where the issue is:
- On the remote PC you want to access, can you
telnet localhost 3389
to ensure it's open and ready for connections? Microsoft has a nice article on it - If that works, can you try to execute
telnet localhost 3389
on the intermediate server to check it's forwarding correctly to the remote PC? - Finally,
telnet localhost 13389
on your laptop, to see if it's forwarding all the way through.
As soon as you hit an error stop there and please add a comment so we figure it out.