It’s always a good idea to use screen or tmux when doing any
significant amount of over SSH in case your connection gets dropped. If you
do this frequently, you might want to have
automatically so you don’t forget. To do this, append the following to your
ssh command, or if you’re using Chrome’s Secure Shell extension, add
the following to the “SSH Arguments” field:
-t -- screen -R
-t -- /bin/sh -c 'tmux has-session && exec tmux attach || exec tmux'
-t tells SSH to always allocate a pseudo-TTY. Without this, you’ll get a
not a terminal error.
-- tells SSH that what follows is a command. Without this, you’ll get a
ssh_exchange_identification: Connection closed by remote host
error, at least with Secure Shell.
screen -R attaches to an existing session or creates a new one if none
tmux doesn’t have an equivalent to
-R option, so we need to do
this manually. The command is mostly self-explanatory, except:
/bin/sh -c allows us to use
|| in our command.
exec replaces the
/bin/sh process with
tmux so that we don’t have an
extra process hanging around. If you don’t care about this, a simple
'tmux attach || tmux' will do.