低延迟的 ssh,基于 UDP ( QUIC / KCP ) 实现, 类似 mosh ( 比 mosh 多了端口转发 )

1,273 阅读1分钟

开源地址

客户端 tsshgithub.com/trzsz/trzsz…

服务端 tsshdgithub.com/trzsz/tsshd

优点简介

  • 降低延迟( 基于 QUIC / KCP

  • 端口转发( 与 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 多了端口转发,不过转发的速度不是很高( 优势是低延迟 )。

安装方法

使用方法

  • 在使用 tssh 登录时,加 --udp 参数启用,用 --tsshd-path 指定 tsshd 在服务器上的路径。

  • 也可以在 ~/.ssh/config 中如下配置( 命令行参数即可省略 ):

    Host xxx
        #!! UdpMode yes
        #!! TsshdPath ~/go/bin/tsshd
    

界面截屏

tssh 可以当作 ssh 来使用,常用的功能都兼容。不带参数启动时,会列出 ~/.ssh/config 中配置的机器,可选择登录,如图:

tssh