If you
- use interactive ssh sessions a lot
- from a laptop
- that you may put to suspend every once in a while
- or even roam between different networks
then you should definitely have a look at Mosh: the mobile shell
Mosh creates a remote terminal session on another machine similar to what ssh does, but different.
Think of ssh and screen combined for persistent sessions, combined with automatic reconnects, even if your client IP address changes and you almost have it.
E.g. previously i was using ssh, screen and irssi to connect to our internal IRC server using the following steps:
- ssh irc to connect to our login machine (irc actually referring to a host entry in my .ssh/config that has the full host name, user name and key information to use)
- screen -xr irc to reconnect to my screen session running irssi (always running so that i have full backlogs)
Now with mosh i can instead use the simpler one liner (or actually a small shell script containing it):
- mosh irc -- screen -xr irc
Mosh then first uses ssh to start a session server process on the remote site, so i can still use my host entry from my ssh config file. Next it starts to communicate with this remote server using an AES encrypted UDP protocol. So the session is not bound to a TCP stream as with SSH, and it will not break if that stream is lost as there isn't one to begin with. And instead of identifying the client by IP and port number the AES session is used for this, so the mosh server does not mind if the clients IP suddenly changes.
So a mosh session survives even if you move the client device to a different network, and as UDP is connection-less the session will even survive extended amounts of client downtime.
Now when e.g. moving from my home office to the coffee-shop-with-WLAN-down-the-street i simply put my laptop to sleep (suspend), and when i open it up again there it wakes up again and even though it had been disconnected for ~10min and now has a totally different IP from a different network i can continue to work with my open mosh sessions right away.
Also when on the train with only a G3 connection that can go up and down by the minute i don't have to bother with remote session disconnects anymore.
But there's even more to it that makes it a superior ssh for interactive sessions: Mosh does not simply stream through all output, it is more like VNC for text mode as it maintains a model of the screen states on the server and client sides and tries to keep these in sync. So if you e.g. start something that produces a lot of output and then terminate it with CTRL-C you don't have to wait for all the output to stream by ... you'll get your shell prompt back almost immediately instead.
And one last goodie: if you've ever used ssh over a slow line or one with very high latencies you probably know the "can type faster than the characters appear on the screen" effect and how confusing that can be. Here mosh upon detecting a slow link will enter a mode where it tries to predict where the characters you just typed are going to end up on the screen (including a simple cursor key understanding) and will show them as underlined while waiting for the server response. Once that arrived it will replace its local prediction with the actual screen contents from the server session. It may not always guess right, but you'll at least see what you're typing right away 
Now i'm desperately waiting for an Android client for this .... 