CV工程师
2026-11-02 09:30:55 阅读:3 · 3774 字 · 约 10 分钟
连一台服务器,桌上往往要摆三四个窗口:终端里敲命令,另一个客户端传文件,第三个窗口管端口转发,遇到图形界面再开 VNC 或 RDP。窗口一多,上下文就散了,出问题时也很难说清是哪一环。
Motty 想把这些收进同一个原生窗口。它是免费开源的 SSH 客户端(Apache-2.0),支持 macOS、Windows 和 Linux,用 Go 写于 Viva 桌面框架之上。官网的定位很直接:原生渲染,启动即用,空闲不占资源,还能通过 MCP 交给外部 agent。

Motty 最容易让人记住的一点,是它没有 Electron 运行时,也没有内嵌浏览器。窗口直接经 Metal、Direct3D 或 Vulkan 绘制,没有 JavaScript 层,空闲时不调度任何工作。官网给出的数据是启动不到一秒;v0.2.6 的 macOS 磁盘映像在 11–13 MB 之间,Windows 安装包不到 10 MB,和动辄上百 MB 的 Electron 客户端不是一个量级。
这个选择也决定了它的能力边界:界面、输入法、焦点和布局交给 Viva,SSH、终端模拟、SFTP、端口转发、远程桌面协议和持久化都由 Motty 自己实现。官方把这条边界写进仓库,也把「哪些在真机上验证过、哪些没有」一起写进了文档。
终端部分没有只做「能连」:真实 PTY 会话、真彩色、5000 行回滚、内联图片、分屏、搜索和录制都在。同步更新(DECSET 2026)让全屏重绘保持原子性,kitty 键盘协议能报告按下、松开与无歧义的 Esc/Alt,Windows 本地 shell 还能用 win32-input-mode。标签页可重排、横向或纵向分屏、在窗口间移动,并在不重新连接的情况下恢复。
主机与认证是它比较认真的地方。发送任何凭据之前,Motty 会先拿主机密钥和自己的 known_hosts 核对;认证覆盖 agent 密钥、私钥文件、OpenSSH 用户证书、PuTTY .ppk(v2/v3,含 Argon2id)、密码和 keyboard-interactive。一个需要同时输入密码与一次性验证码的 PAM 轮次,会显示成一个对话框、每个问题一个字段。TOTP/HOTP 种子可以存进保险库并自动填充。
保存的密码与私钥口令进 AES-256-GCM 保险库,密钥放在系统密钥库;没有系统密钥库的环境会退化为保险库旁的一个密钥文件——官方也直说,能拷走那个目录的人就能读保险库。

主机可以分组、打标签、搜索,也能从 OpenSSH config、PuTTY、Xshell、MobaXterm、WindTerm、Electerm 或 Netcatty 导入。~/.ssh/config 支持双向同步,第一次改写前会在旁边留一份 .motty-backup,导入的主机保留原名,同一条 ssh 命令照样能用。
SFTP 面板和 shell 在同一台主机、同一个会话里,左边看文件,右边敲命令。传输队列有上限,支持多选、递归上传下载、断点续传、取消与重试。替换远端文件时,Motty 会先写一份临时副本,校验续传前缀,完整同步后才原子重命名;失败时旧文件保持原样。
内置编辑器能打开最大 1 MiB 的 UTF-8 文件,写入前后都会对远端文件做哈希,并保留权限。没有 SFTP 的服务器可以退回 SCP,另外还支持 ZMODEM、XMODEM/YMODEM。
v0.2.6 又补了两处常用动作:保存前可以在双栏里对比服务器当前版本和本地修改,服务器文件已变化时不会静默覆盖;文件面板的「更多」菜单可以把当前文件夹交给 VS Code 或 Zed 打开,编辑器在「设置 → 文件」里选择。

端口转发不是 dotfile 里的一行配置,而是一个可查看的列表:本地、远程、SOCKS5、HTTP CONNECT 四类规则,监听地址、目标地址和状态一眼可见。规则默认只监听回环,也不会自动启动,点一下才建立连接;隧道随所属的 SSH 标签页一起停止。
跳板链按主机配置,每一跳在发送凭据前都会独立校验自己的主机密钥,被攻陷的跳板机无法悄悄改写下一条连接。X11 转发会先用一个假的 cookie 做校验,再替换成本地 Xauthority 的 cookie。全局出站代理和 ProxyCommand(例如 cloudflared access ssh)也都支持。
远程桌面在标签页里完成:VNC 支持 RFB 3.3/3.7/3.8、None 与 VNC 认证、Raw/CopyRect/RRE/Hextile/ZRLE、桌面缩放、指针、键盘和文本剪贴板;RDP 使用 TLS、优先 NLA,并在明确信任后固定服务器证书。服务器只监听回环时,两者都可以经 SSH 主机中转。

Motty 把助手分成两种模式。Ask 只以可见的终端内容为上下文回答问题;Agent 还能在那个终端里执行命令,但命令会按风险分级,并经过审批。Ask 模式下如果需要工具,助手可以申请切到 Agent,批准后会以 Agent 模式重试,并记住这个选择。
终端文本送进模型前会做脱敏,覆盖私钥文件、赋值语句、URL 内嵌凭据和常见 token 格式;provider 密钥放在保险库。长对话只发送固定预算内的最近几轮,避免会话撑爆上下文;悬停最后一条回答能看到 token 用量和复制按钮。
可选的 MCP 服务器把这套工具暴露给外部 agent。它默认关闭,只监听回环,需要 bearer token,支持 observe 与 ask 模式。motty mcp-serve 则是同一套能力的无窗口版本:外部 agent 通过 stdio 启动它,没有端口也没有 token。
官网下载页为三个平台提供 10 个安装包:macOS 的 .dmg 与 .zip(Apple 芯片 / Intel),Windows 的安装程序与便携版 .zip(x64 / arm64),Linux 的 .deb 与 .tar.gz(x64 / arm64)。便携版把数据放在 motty.exe 旁的 motty-data。
第一次使用的基本流程是:打开 Hosts,新建主机,填名称、地址和账号,选择 agent、私钥文件或密码,连接后把主机密钥指纹和服务器核对一次。命令面板在 macOS 上是 Command+Shift+P,Windows/Linux 上是 Control+Shift+P;标签页、分屏、SFTP、转发和助手都是面板里的命令。
如果你已经有一份 ~/.ssh/config,直接导入通常比重新录一遍更省事。Windows 用户可以在「设置 → 终端 → 本地 shell」里选择 PowerShell、CMD、Git Bash 或某个 WSL 发行版,文件面板也能跟随 WSL 终端的目录。
Motty 的文档在「如实说明限制」上做得比多数同类项目好,但这些限制仍然值得先看一眼:
.AppImage;Linux 包没有签名,macOS 和 Windows 的签名取决于发布时是否配置了凭据。docs/remote-desktop.md 列出了具体范围,而不是一笔带过。Motty 的取舍很清楚:不追移动端和云同步,而是把桌面上的 SSH 工作流做完整——终端、文件、转发、远程桌面和助手共享一个原生窗口,凭据与主机密钥的处理也足够认真。写作时仓库约 403 star、46 fork,版本为 v0.2.6,采用 Apache-2.0 许可,不需要账号,也没有遥测。
项目在 GitHub,官网 motty.page 提供文档与下载。本站已经把 Motty 收录进 /project 推荐,并在 /download 挂了官方安装包入口;想找更多开发与运维工具,可以去 /tool 看看。
相关阅读
扫描二维码获取文章详情
更多精彩内容尽在:WWW.ZNGG.NET
