tssh v0.1.26 已经发布,支持 trz/tsz 的 ssh 客户端
此版本更新内容包括:
发布 v0.1.26 (Release v0.1.26)
本次发布为 SSH 多路复用 (Multiplexing) 和 UDP 会话管理带来了重要的新功能,同时包含了广泛的兼容性改进、新的配置选项以及大量的 Bug 修复。
核心新特性 (Major Features)
- 多路复用与 ControlMaster 支持:
- 新增
-M 参数以启用多路复用主节点模式。
- 新增
-O <ctl_cmd> 参数以控制多路复用主进程 (#260)。
- 新增
-S (ControlPath) 支持,使 tssh 能够作为 Mosh 等工具的底层 SSH 客户端。
- 迁移至上游
golang.org/x/crypto 原生的 ssh.NewControlClientConn,提供更安全、原生的 OpenSSH ControlMaster 代理支持。
- UDP 会话分离与恢复 (Attach & Detach): 支持分离 (detach) 当前活跃的 UDP 会话,并支持跨设备连接 (attach) 到已存在的 UDP 会话。
- 主机密钥验证与管理:
- 新增对
VerifyHostKeyDNS 的支持,用于基于 SSHFP 的主机密钥验证 (#261)。
- 新增
--remove-host-key 选项,可轻松清理 known_hosts 中的过期条目 (#267)。
- 新增对
HashKnownHosts SSH 配置的支持。
- 主机名规范化 (Host Canonicalization): 实现了对规范主机名 (canonical host) 查找及
CanonicalizeHostname 的支持,并修复了 CanonicalizeMaxDots 的行为问题 (#248, #251)。
- 协议覆盖: 新增
--tcp 和 --quic 选项,以便快速覆盖默认的 UdpMode 设置 (#263)。
✨ 功能增强 (Enhancements)
- 连接与稳定性:
- 升级
tsshd 依赖,显著提升了重连能力和诊断功能。
- 新增可配置的
UdpReconnectExitKey(如 Ctrl+D),允许在 UDP 连接丢失时手动快捷退出 (#244)。
- 将默认的
UdpAliveTimeout (UDP 保活超时) 延长至 10 天,并优化了时间格式的显示。
- 优化了 UDP 预览的获取、渲染及终端重绘机制。
- 改进了端口转发关闭及会话附加 (attach) 时的错误处理机制。
- 配置与 DNS:
- 在
tssh.conf 中新增 CustomDnsServer 配置(可通过 --dns 参数覆盖)。
- 支持加载符合 XDG 目录规范以及传统的 SSH 配置文件。
- 新增模糊查找(fuzzy selection) 主机的配置项及取消时的退出状态码 (#269)。
- 界面与体验 (UI & UX):
- 在终端标题栏中直接显示连接的 RTT 延迟。
- 在 "tiny" 主题下,当主机名为空或与别名相同时自动隐藏主机信息 (#252)。
- 新增
-n (NoStdin) 参数支持。
- 兼容性:
- 支持
KexAlgorithms 配置,统一了 SSH 算法的处理方式 (#240)。
- 支持在 UDP 模式下使用
ProxyCommand(自动隐含 TCP 代理模式)(#262)。
- 增加对更多远程操作系统和架构变体的支持 (#242, #243)。
- 对齐 OpenSSH 规范,优化了 Agent 密钥匹配和代理配置的逻辑 (#247)。
Bug 修复 (Bug Fixes)
- 网络: 在网络地址存在歧义时,正确遵循
AddressFamily 优先设置 (#256)。
- 文件路径: 修复了解析身份认证文件时主目录 (
~/) 的路径展开问题 (#259)。
- 终端问题:
- 当标准输出被管道重定向时,跳过 Windows 虚拟终端初始化逻辑 (#264)。
- 过滤
ESC[6n 序列时,忽略终端的光标位置报告。
- 路由与状态:
- 修复了非 UDP 目标位于 UDP 跳板机 (jump host) 后方时的退出通知异常。
- 确保当远程 Shell 结束时,客户端能够正确退出。
- 在连接丢失期间丢弃服务端输出,防止终端出现界面破坏或乱码。
- 将
args.Destination 与解析后的最终主机名同步,确保后续的配置处理阶段能正确应用 Host / Match 规则块 (#251)。
- 常规修复:
- 确保通过临时文件进行二进制文件的原子化安装,防止更新时文件损坏 (#245)。
- 修复了重复的主机别名被错误解析的问题 (#249)。
- 修复了 macOS 下默认的
ssh-sk-helper 路径解析问题 (#241)。
- 将字符串判断中的
strings.ToLower 替换为 strings.EqualFold,实现更安全的忽略大小写比较。
底层与内部改进 (Build & Docs)
- 在 CI 中添加了自动化的预发布 (pre-release) 构建部署流程。
- 优化了 README 的排版、表格布局、官方网站 URL 以及安装指南。
- 将 Debian 打包元数据的 section 从
utils 调整为 net。
- 更新了项目包元数据并升级了底层依赖项。
新贡献者 (New Contributors)
完整的更新日志: https://gitee.com/trzsz/tssh/compare/v0.1.25...v0.1.26
详情查看:https://gitee.com/trzsz/tssh/releases/v0.1.26