参考资料:
http://mosh.mit.edu
http://www.slashroot.in/mosh-better-alternative-ssh
背景介绍:
目前我维护的服务器,大部分都是在美国西海岸,从天朝连过去那速度,有时候真让人咬牙切齿。
无意间看到了Mosh这个玩意儿,试用了一下响应速度上没有特别大的提升,但基本上没有再断开和卡住过了。
查看了一下官方网站的介绍,大致了解了Mosh这个东西,最大的特点是基于udp方式传输,支持在服务端创建一个临时的Key供客户端一次性连接,退出后失效;也支持通过SSH的配置进行认证,但数据传输本身还是自身的udp方式。
另外,Mosh还有两个我觉得非常有用的功能:
1. 会话的中断不会导致当前正在前端执行的命令中断,相当于你所有的操作都是在screen命令中一样在后台执行;
2. 会话在中断过后,不会立刻退出,而是启用一个计时器,当网络恢复后会自动重新连接,同时会延续之前的会话,不会重新开启一个。
下面,是具体的安装配置过程:
客户端:demoenv
服务端:heydevops
1. 同时在服务器端与客户端上安装Mosh,这是一件非常简单的事情
[dong.guo@demoenv ~]$ sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[dong.guo@demoenv ~]$ sudo yum install mosh
[dong.guo@heydevops ~]$ sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[dong.guo@heydevops ~]$ sudo yum install mosh
2. 采用SSH配置进行认证,只需要在客户端上执行mosh命令即可
[dong.guo@demoenv ~]$ mosh dong.guo@heylinux.com
[dong.guo@heydevops ~]$ exit
如果服务端修改过SSH的端口,或需要指定单独的SSHKEY,可以通过–ssh参数的方式:
[dong.guo@demoenv ~]$ mosh –ssh=”ssh -i /home/dong.guo/.ssh/oozie -p 2222″
3. 采用临时Key的方式进行一次性认证,需要在服务端创建Key,然后客户端通过这个Key进行登录,该Key会在会话结束十分钟后自动失效
创建一个临时的Key和端口供Client登录
[dong.guo@heydevops ~]$ mosh-server
|
MOSH CONNECT 60001 kk4Y4csML8rJmXXYc4Ibow |
|
Copyright 2012 Keith Winstein <mosh-devel@mit.edu> |
|
This is free software: you are free to change and redistribute it. |
|
There is NO WARRANTY, to the extent permitted by law. |
|
[mosh-server detached, pid = 27290] |
首先定义好MOSH_KEY的值
[dong.guo@demoenv ~]$ export MOSH_KEY=kk4Y4csML8rJmXXYc4Ibow
注:mosh-client 后面只能跟服务器具体的IP地址和临时端口,不支持主机名或域名方式
[dong.guo@demoenv ~]$ mosh-client 192.168.92.128 60001
[dong.guo@heydevops ~]$ exit
转载请注明:爱开源 » 使用Mosh来优化SSH连接