Purpose:
Expose web apps running on local machine to the outside world using reverse tunneling (ngrok like service).
I have a Windows 10 Pro VM running on Azure. I've installed OpenSSH server there and I've tested it by using local port forwarding and dynamic port forwarding (socks proxy). Both work fine.
But I don't seem to get the reverse tunneling working.
This is the command I'm using on my local machine:
ssh -R 5002:localhost:5002 xx.xx.xx.xxx
Where,
xx.xx.xx.xxx is the public IP of the Win10 VM on Azure.
5002 is the port where my web app is running on my local machine and I also want to keep the same port for the Azure VM.
The above command prompts me for entering the password and upon entering it, it shows the following prompt on the terminal, which probably indicates that connection was successful.
me@VMW10Pro C:\Users\me>
But when I try to access my locally running web app like the following, nothing happens:
https://xx.xx.xx.xxx:5002/myapp
I also tried, with no luck:
http://xx.xx.xx.xxx:5002/myapp
Here's how I configured the inbound port rules for the Azure VM:

And here's how the outbound port rules look like. I've even allowed all ports temporarily.

And this is the sshd_config
file on the Azure VM. The only change I made was setting GatewayPorts
to yes
:
AuthorizedKeysFile .ssh/authorized_keys
GatewayPorts yes
Subsystem sftp sftp-server.exe
Match Group administrators
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
The sshd_config
file on my local machine also looks the same as above with GatewayPorts
set to yes
.
Please note: I'm no expert with networking stuff. There are other tutorials and how-tos available on doing the same with Linux VMs. But I just want to make use of the existing Windows VM.
Any help would be much appreciated.