芬兰研究员Tatu Ylönen于1995年设计出最早的[SSH](http://zh.wikipedia.org/wiki/SSH)协议,它迅速成为最流行的远程登录安全协议。17年后,一组MIT的黑客提出了[mosh](http://mosh.mit.edu/),让SSH走向现代化。mosh是基于新的State Synchronization Protocol(SSP)协议,运行在UDP上,能同步不同主机对象的状态,加密和认证使用AES-128。当客户在WiFi网络中漫游或切换到3G网络,mosh能保持连接不断,在输入和删除命令时它能即时反馈,不会出现恼人的延迟。 mosh针对不同版本的linux版本有不同的自动安装方,具体可以看[http://mosh.mit.edu/](http://mosh.mit.edu/)官方站点的自动安装方法。我这里主要介绍下手动安装的方法: 首先,mosh的安装需要[Protocol Buffers](http://code.google.com/p/protobuf/)、ncurses、zlib、IO::Pty Perl模块环境。 特点:在高延迟的网络下,mosh比ssh流畅多了,而且在3G网络下,丢失网络变更IP后,终端连接不会中断。另外,mosh对编码的转换上,比其他终端有不少优势。具体可以[官网上的用法介绍](http://mosh.mit.edu/#usage)。

1wget http://cloud.github.com/downloads/keithw/mosh/mosh-1.2.tar.gz
2./configure
3make
4make install

安装过程时,如果没有protocol 环境会报configure: error: cannot find protoc, the Protocol Buffers compiler 的错误。centos/redhat官方的源中没有protocol包,如果有第三方源且包含该包,可通过yum安装。 我这里是直接安装的:

1wget http://protobuf.googlecode.com/files/protobuf-2.4.1.tar.bz2
2tar jzvf protobuf-2.4.1.tar.bz2
3./configure --prefix=/usr --libdir=/usr/lib --sysconfdir=/etc
4make
5make install

按照上面的方面安装完protobuf包后,再去安装mosh就不会报上面的错误了。安装完成后,在使用的时候可能报下面的错误: ./mosh –help

Can’t locate IO/Pty.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor\_perl /usr/share/perl5/vendor\_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./mosh line 24. BEGIN failed–compilation aborted at ./mosh line 24. 解决方法:cpan 安装IO::Pty模块

1wget http://mirrors.sohu.com/CPAN/authors/id/T/TO/TODDR/IO-Tty-1.10.tar.gz
2tar zxvf IO-Tty-1.10.tar.gz
3cd IO-Tty-1.10
4perl Makefile.PL
5make test
6make install

至此,mosh的安装就完成了!不过想要通过mosh连结其他linux服务器,需要其他服务器上也安装mosh-server端才行。 注:mosh相对于ssh而言仍属于轻量级产品,在生产使用中还是建议使用ssh。 目前不支持的功能,但未来可能新增的功能:  

  1. Forwarding of X11, SSH agent, etc .  
  2. IPv6, with roaming between v4 and v6  
  3. Android client