在 DeepSeek Harness 的插件化架构中,SSH 连接是远程协作的基础。原生的 ssh provider 在 macOS 环境下常因 ControlPath 路径过长而失败,且缺乏文件操作的安全边界。dsh-secure-remote 是一个独立的插件,它通过 bundle patch 的方式替换内置 provider,不涉及上游源码修改,也不需要迁移现有的 ssh_workspace v1 数据。该插件由 startGalway 维护,遵循 MIT 许可证。
核心功能¶
-
连接稳定性修复
- macOS / Linux:使用短路径的私有目录运行 OpenSSH
ControlMaster,解决 macOS 因ControlPath too long导致的 PTY 启动失败问题。 - Windows:本地端使用系统
ssh.exe,明确关闭ControlMaster,但状态探测和应用层重连功能仍可用。
- macOS / Linux:使用短路径的私有目录运行 OpenSSH
-
认证与凭证管理
- Key 模式:自动发现 SSH Config 主机和默认密钥,支持选择单个密钥文件或密钥文件夹。
- Password 模式:只显示 Host / Port / User / Password;密码通过 DSH credentials 服务保存,不进入 SSH 参数、日志或状态接口。
-
工作区状态与安全
- 状态显示:Workspace 行显示
connected、connecting、degraded、disconnected状态,以及延迟和脱敏原因。 - 安全边界:远程文件工具严格限制在 Workspace 根目录,拒绝
..、前缀碰撞和符号链接逃逸。 - 严格校验:默认保持
StrictHostKeyChecking=yes,不自动降级。 - 远程限制:远端必须是 POSIX 系统;检测到 Windows 等非 POSIX 目标时返回
REMOTE_OS_UNSUPPORTED。
- 状态显示:Workspace 行显示
-
兼容性
- 保留官方
openRawChannel原始 SSH 通道,兼容 Remote Agent 安装和长连接。 - 保留
SshProfile、RemoteWorkspaceView、Workspace RPC、Session、Bash 和 Terminal 兼容性。
- 保留官方
安装与启用¶
安装该插件需要 DeepSeek Harness Web profile 环境,并确保 Node.js 版本为 22 或以上。
安装指定版本:
dsh plugin --profile web add github:startGalway/dsh-secure-remote#v1.1.2
本地开发安装:
dsh plugin --profile web add file:/absolute/path/to/dsh-secure-remote
安装完成后重启 Web profile。卸载插件不会迁移或删除已有的远程 Workspace。
配置项¶
插件使用以下默认配置:
workspaceBoundary: deny
connectionReuse: true
controlPersistMs: 300000
serverAliveIntervalSec: 15
serverAliveCountMax: 3
statusProbeIntervalMs: 30000
maxTransferBytes: 8388608
已知限制¶
- Bash 行为:Bash 不受 Workspace 文件边界限制,拥有远程 SSH 账号本身的完整权限。
- 远程 Windows:当前不支持连接到 Windows 远端目标。
- 功能范围:当前版本不包含双向目录镜像、原子文件传输、后台任务和远程 Git 工作流。
- Runtime:Unix 侧保留一个
0700权限的短路径兼容启动器;Windows 直接调用系统ssh.exe。
适用场景¶
该插件适合需要稳定 SSH 连接、注重凭证安全存储以及需要严格文件边界控制的开发场景。由于插件以 DSH 进程权限运行,安装前建议检查源码与许可证。