Ssh reverse port forwarding - DH no bind to public IP


#1

Our non-profit is using a few mobile portable web-servers for relief work in a foreign country. We want to be able to access these web-servers remotely from the US, when they are connected to the internet. The problem is that the internet service in this foreign country is often behind firewalls and NATs, so it is not possible to get to our mobile servers from the public internet.

Thus I want to configure these mobile servers to open a ssh tunnel to a known host (ie on dreamhost) and set up a listening port when they are connected, so we can get to them.

I have tried, using a command on the mobile server such as:
ssh -N -R 55555:localhost:80 dreamhostuser@mydreamhostdomainname

it appears the ssh daemon on dreamhost is configured to only bind the port 55555 to localhost(on dreamhostdomainname), and not to the public IP address of dreamhostdomainname. Thus I am not able to get to the host.

I am able to get this to work using my own linux servers (I had to modify sshd to set “GatewayPorts yes”) but this is no good as I have a dynamic address and I do not have enterprise reliability like dreamhost does.

It seems many ssh tunneling services exist, but I have not found one that supports reverse forwarding, and I would rather do all my work through dreamhost anyway… maybe dreamcompute will help? other ideas? some other ssh trick I missed? thanks!