mosh

时间:2021-07-14 00:14:32

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