开源地址
客户端 tssh :github.com/trzsz/trzsz…
服务端 tsshd :github.com/trzsz/tsshd
优点简介
-
端口转发( 与 openssh 相同,包括 ssh agent 转发和 X11 转发 )
-
[TODO] 连接迁移( 支持网络切换和掉线重连,依赖于 quic-go#234 )
基本原理
tssh 是一个 go 实现的 ssh 客户端,完全兼容 openssh,同时提供很多新功能,--udp 是其中一个新功能。
当使用 tssh —udp 登录时,将在服务器上启动一个新的 tsshd 进程,tsshd 输出 UDP 端口和密钥( tssh 作为 ssh 客户端,可以安全地接收到 )。
然后 tssh 关闭 ssh 的 TCP 连接,再使用 UDP( KCP ) 与 tsshd 通讯( tsshd 在这里开始承担 sshd 的角色 )。
原理和 mosh 差不多,比 mosh 多了端口转发,不过转发的速度不是很高( 优势是低延迟 )。
安装方法
-
在服务器上安装
tsshd,请参考 github.com/trzsz/tsshd… -
在客户端上安装
tssh,请参考 github.com/trzsz/trzsz…
使用方法
-
在使用
tssh登录时,加--udp参数启用,用--tsshd-path指定tsshd在服务器上的路径。 -
也可以在
~/.ssh/config中如下配置( 命令行参数即可省略 ):Host xxx #!! UdpMode yes #!! TsshdPath ~/go/bin/tsshd
界面截屏
tssh 可以当作 ssh 来使用,常用的功能都兼容。不带参数启动时,会列出 ~/.ssh/config 中配置的机器,可选择登录,如图: