xssh 与 OpenSSH 的区别
先说结论:xssh 不是要替代 OpenSSH,而是在 SSH 之上为 AI agent 补齐一层“可托管、可观察、不泄密”的能力。人自己登录服务器,OpenSSH 依然是最好的选择。
OpenSSH 已经能做的
OpenSSH 支持 PTY、密钥与 ssh-agent 认证、连接复用(ControlMaster)、端口转发、跳板机等。很多场景下,给 agent 配好密钥后直接用 ssh host cmd 也能工作。
agent 直接用 ssh 时的常见问题
| 问题 | 直接使用 ssh | 使用 xssh |
|---|---|---|
密码 / [Y/n] 提示 |
命令停住等待输入,工具调用超时 | 识别提示类型并报告(waiting prompt=confirm),agent 用 session send 回答 |
| 跨调用状态 | 每次调用都是新 shell,cd、环境变量丢失 |
命名会话保持 cwd、环境变量和运行中的程序 |
| sudo 密码 | 只能把密码交给 agent | 由你录入一次存进钥匙串,自动代填,agent 不可见 |
| 长任务 | 受工具超时限制,断开即中止 | job 在远端独立运行,可等待、增量读日志 |
| 超时后的结果 | 不知道命令是否执行完 | 可恢复任务 ID:查询、增量读取、等待、取消,不会重复执行 |
| 输出体量 | 大量输出塞满上下文 | 有界的首尾预览,完整输出脱敏后落盘 |
| 改文件 | 拼接 sed / heredoc,易出错 |
file edit 精确替换、原子写入、自动备份、并发修改检测 |
| 主机密钥变化 | 可能被 StrictHostKeyChecking=no 绕过 |
硬失败(退出码 78),由人核对指纹 |
| 审计 | 需另行配置 | 所有远程操作写入审计日志 |
xssh 的兼容边界
xssh 的风格是如实说明限制:
- 只实现 OpenSSH 配置的子集。支持首值优先、Include、部分 Match 条件、ProxyJump、ProxyCommand、证书与 HostKeyAlias;
Match exec、final、canonical及未知的安全选项会在连接前明确报错。可以用xssh host check-config查看有效配置。 - 支持的默认算法集合可能与你本机的 OpenSSH 版本不同;老设备可按主机开启
--legacy-algos。 xssh cp支持跳过未变文件和断点续传,但没有 rsync 的块级增量算法;大量小改动的大数据集更适合用 rsync。- 本机目前只有 Windows x64 版本,远端需要类 Unix 系统和 POSIX 风格 shell。
什么时候用哪个
- 你自己登录、调试:OpenSSH。
- 让 Claude Code、Codex 等 agent 代你操作服务器:xssh。
- xssh 不支持的特殊配置或功能:agent 会说明边界,改用其他客户端。