mosh 是一款使用 UDP 连接 C/S 的终端工具, 服务器只需安装好 mosh 套件, 并启动 SSH 服务, 等待 Client 连接即可.
Client (mosh-client) 连接时, 需要用户提供登录 SSH 的相关信息, 然后其首先使用 SSH 协议登录服务器, 向服务器发送类似于"mosh-server new =s =l LANG=en_US.UTF-8"的命令启动 mosh-server, 并取得一个密钥和端口号, 接下来就能使 mosh-client 与 mosh-server 通信了.
客户端如何登录? 好像是类似下面的命令:
mosh user@hostname --ssh="ssh -p 29763"
还有一种方式是首先手动在服务器运行"mosh-server"启动 mosh-server 服务, 然后在 Client 端使用回显的 UDP 端口和一个随机生成的密钥登录, 显然不实用.
采用临时Key的方式进行一次性认证,需要在服务端创建Key,然后客户端通过这个Key进行登录,该Key会在会话结束十分钟后自动失效
创建一个临时的Key和端口供Client登录
[dong.guo@heydevops ~]$ mosh-server
1 |
MOSH CONNECT 60001 kk4Y4csML8rJmXXYc4Ibow |
2 |
mosh-server (mosh 1.2.4) |
3 |
Copyright 2012 Keith Winstein <mosh-devel@mit.edu> |
4 |
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. |
5 |
This is free software: you are free to change and redistribute it. |
6 |
There is NO WARRANTY, to the extent permitted by law. |
7 |
[mosh-server detached, pid = 27290] |
客户端使用 mosh-client 连接服务器
Usage: mosh-client [-# 'ARGS'] IP PORT
首先定义好MOSH_KEY的值
[dong.guo@demoenv ~]$ export MOSH_KEY=kk4Y4csML8rJmXXYc4Ibow
注:mosh-client 后面只能跟服务器具体的IP地址和临时端口,不支持主机名或域名方式
[dong.guo@demoenv ~]$ mosh-client 192.168.92.128 60001