Per le sessioni semi-perpetue di ssh che contraddistinguono il mio setup, utilizzo una combinazione di autossh e tmux/screen (wrappato da byobu). Ultimamente ho scoperto mobile-shell (Mosh): proveniente dal MIT, si tratta di un ssh killer perché, a differenza di ssh:
- ristabilisce automaticamente la connessione dopo un certo timeout (problema risolto in precedenza da autossh);
- utilizza un eco locale (addio lag ssh su connessioni lente!);
- mosh e mosh-server possono essere avviati da utenti non privilegiati
- supporta solo UTF-8!
Da Ubuntu 12.04, mosh è presente nei repo ufficiali di Ubuntu (per le versioni precedenti, è presente anche un ppa). Per MacOSX, si può usare compilare il pacchetto usando homebrew o scaricare il dmg già pronto dal sito di riferimento.
Provarlo è molto semplice: supponiamo di avere un server Linux e un client MacOSX. Installatelo su Linux tramite apt-get e scaricate il pkg per MacOSX. Una volta installato, per connettersi da MacOSX ho dovuto dichiarare un locale (ho scoperto che, sfortunatamente, MacOSX non dichiara alcun locale). Per cui, controllate il locale in uso sul server remoto e dichiarate lo stesso locale su MacOSX (eventualmente modificate anche il file rc relativo alla vostra shell di riferimento):
michele@delta:~ % locale LANG= LC_COLLATE="C" LC_CTYPE="C" LC_MESSAGES="C" LC_MONETARY="C" LC_NUMERIC="C" LC_TIME="C" LC_ALL= michele@delta:~ % export LANG="en_US.UTF-8" michele@delta:~ % mosh server