Termo:一个 macOS 原生远程工作台, SSH / 传文件 / Win 远程桌面 / 端口转发都在里面

查看 13|回复 0
作者:w1573007   
项目地址: https://github.com/icloudza/termo
官网直接下载: https://termoi.app


Termo 是一款 macOS 原生远程运维客户端,用 SwiftUI + AppKit 构建,目标是把日常分散在多个工具里的远程操作——SSH 终端、文件传输、Windows 远程桌面、端口转发、主机监控、密钥管理——整合进同一个统一、克制的界面。

为什么做这个
在 macOS 上做远程运维,通常意味着同时开着好几个软件:一个终端连服务器,一个 FTP/SFTP 工具传文件,一个远程桌面客户端连 Windows ,命令行里再手动配端口转发,外加某个页面或工具盯着服务器负载。这些任务本质上都是“连到一台远程主机上完成某件事”,却被拆散在风格各异、体验参差的工具之间。
技术实现
Termo 在工程实现上有几处刻意的取舍,简单展开说明:
SSH 栈全部进程内:早期实现依赖 spawn 系统 /usr/bin/ssh,虽然能用,但受系统环境约束、进程管理繁琐,也无法满足沙盒分发的前提。后续重写为进程内的 libssh2 (静态)+ 共享 OpenSSL ,覆盖终端 PTY 、SFTP 子系统、直连 TCP 转发、known-hosts 校验、密钥生成,全程不落系统 ssh 二进制、不 fork 外部进程。代价是实现复杂度上升,收益是连接更稳、启动更快、行为完全可控。
RDP 栈:内嵌 FreeRDP 静态库,配合一层 Objective-C 桥接,将远端 BGRA 帧回主线程转为 CGImage 渲染,并处理键盘输入与双向剪贴板同步。
数据安全:主机与会话以 JSON 落盘,密码合并写入系统钥匙串,从不明文存储;远程文件保存采用乐观锁,避免 App 与其他工具或多会话并发修改导致内容覆盖。
界面。全自绘统一组件,深浅色主题,菜单栏常驻呼吸指示灯。打磨细节时以 Ghostty 、Xcode 为参照,尽量避免暴露原生控件的默认样式,并持续消除卡顿与可感知的加载。
下载与环境要求

  • 系统要求:macOS 14 (Sonoma) 及以上、Apple Silicon ( M 系列)

  • 已完成 Developer ID 签名(688 订阅而已,问题不大)与 Apple 公证(不然打开会让你选择无视风险继续安装),Gatekeeper 正常放行;安装后新版本会自动提示更新,无需手动重新下载

    Termo 源于自身在 macOS 上远程运维的实际需求,仍在持续迭代中,难免会有一些 bug 。欢迎试用,Bug 、需求与建议都可以在 issue 中反馈,我会高度重视并解决好🫡。(希望大家能点点 Star🌟~)
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部