I use ssh -L -g, but intermittently the connection is lost, thus:

$ ssh -L 8080:localhost:8080 example.com -g
Last login: Tue Apr 24 07:19:04 2012 from
Read from remote host example.com: Connection timed out
Connection to example.com closed.

Can anyone suggest a robust way to keep these connections alive, and reconnect it they are closed.


You could try Mosh.

  • Damn, that looks awesome, I work on the train every day and I can't believe I never thought to look for a general solution to the problem. As you can probably see, I actually found autossh which appears to solve the specific problem I have, but I'll definitely check Mosh out. – davetapley Apr 25 '12 at 2:47
  • mosh doesn't handle port forwarding – Elazar Leibovich Jan 25 '16 at 6:14

autossh appears to fulfill my requirement, from the readme:

autossh is a program to start a copy of ssh and monitor it, 
restarting it as necessary should it die or stop passing traffic.

Substituting the arguments given in the question:

autossh -M 0 -L 8080:localhost:8080 example.com -g

(the -M 0 is required to turn the monitoring loop off)

I was able to kill -9 the connection from example.com and see the connection re-established automatically by autossh:

local$ autossh -M 0 -L 8080:localhost:8080 example.com -g
Last login: Wed Apr 25 03:23:56 2012 from

Execute kill -9 on PID of connection on example.com.

local$ Connection to example.com closed.
Last login: Wed Apr 25 03:34:01 2012 from

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.