29

The remote Linux computer is in an internal network and has no public IP address. So I installed ngrok.

ngrok tcp 22

ngrok by @inconshreveable (Ctrl+C to quit) Tunnel Status online
Version 2.0.19/2.0.17
Web Interface http://127.0.0.1:4040
Forwarding tcp://0.tcp.ngrok.io:36428 -> localhost:22
Connections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00

I checked that sshd is running.

At the local PC, I tried

ssh myuser@ngrok.com -p36428

which gave rise to

ssh: connect to host ngrok.com port 36428: Connection refused

wsdzbm
  • 3,096
  • 3
  • 25
  • 28
  • 2
    Note that `myuser` is the username for the local username on the machine, not the username for ngrok. (For anyone who stumbled on this problem and found this site) – taper Aug 17 '18 at 16:13
  • 1
    While the problem is on Linux, if you cannot SSH to Ngrok on Windows see https://stackoverflow.com/questions/67193433/unable-to-ssh-to-a-windows-machine-using-ngrok – 丶 Limeー来夢 丶 Dec 30 '21 at 02:33

1 Answers1

68

You are connecting to the wrong destination address. The command should be

ssh myuser@0.tcp.ngrok.io -p36428

Notice the different hostname (ie 0.tcp.ngrok.io instead of ngrok.com).

And generally you would want to put the user@hostname after all the options (eg -p36428), even though it doesn't generally cause any issues.

lsowen
  • 3,728
  • 1
  • 21
  • 23