Axel Beckert: Tools for CLI Road Warriors: Remote Shells
Most of my private online life happens on netbooks and besides the web
browser, SSH is my most used program especially on netbooks.
Accordingly I also have hosts on the net to which I connect via SSH.
My most used program there is GNU Screen.
So yes, for things like e-mail, IRC, and Jabber I connect to a running
screen session on some host with a permanent internet connection. On
those hosts there is usually one GNU Screen instance running
permanently with either mutt or irssi (which is also my Jabber client
via a Bitlbee gateway).
But there are some other less well-known tools which I regard as
useful in such a setup. The following two tools can both be seen as
SSH for special occassions.
autossh
I already blogged about autossh, even twice, so I ll just recap the most important features here:
autossh is a wrapper around SSH which regularily checks via two
tunnels connect to each other on the remote side if the connection is
still alive, and if not, it kills the ssh and starts a new one with
the same parameters (i.e. tunnels, port forwardings, commands to call,
etc.).
It s quite obvious that this is perfect to be combined with screen s
-R
and -d
options.
I use autossh so often that I even adopted its
Debian package.
mosh
Since last week there s a new kid in town^W
Debian
Unstable: mosh targets
the same problems as autossh (unreliable networks, roaming, suspending
the computer, etc.) just with a completely different approach which
partially even obsoletes the usage of GNU Screen or tmux:
While mosh uses plain SSH for authentication, authorization and key
exchange the final connection is an AES-128 encrypted UDP connection
on a random port and is independent of the client s IP address.
This allows mosh to have the following advantages: The connection
stays even if you re switching networks or suspending your netbook. So
if you re just running a single text-mode application you don t even
need GNU Screen or tmux. (You still do if you want the terminal
multiplexing feature of GNU Screen or tmux.)
Another nice feature, especially on unreliable WLAN connections or
laggy GSM or UMTS connections is mosh s output prediction based on its
input (i.e. what is typed). Per line it tries to guess which server
reaction a key press would cause and if it detects a lagging
connection, it shows the predicted result underlined until it gets the
real result from the server. This eases writing mails in a remote mutt
or chatting in a remote irssi, especially if you noticed that you made
a typo, but can t remember how many backspaces you would have to type
to fix it.
Mosh needs to be installed on both, client and server, but the server
is only activated via SSH, so it has no port open unless a connection
is started. And despite that (in Debian) mosh is
currently just available in Unstable, the package builds fine on
Squeeze, too. There s also an PPA for Ubuntu
and of course you can also get the source code, e.g. as git checkout
from GitHub.
mosh is still under heavy development and new features and bug fixes
get added nearly every day.
Thanks to Christine Spang
for sponsoring and mentoring Keith s mosh package in Debian.