通过 SSH 在远程 Linux 主机上读写文件、搜索代码并执行命令
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add RuitongZhang/dsh-ssh-remote该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · dev
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 2 处,展示前 2 条)
- 写入本地文件index.js:35
mkdirSync(CONTROL_DIR, { recursive: true, mode: 0o700 }) - 执行外部命令固定命令index.js:82
child = spawn('ssh', args, { stdio: ['pipe', 'pipe', 'pipe'] })
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 套件:通过 SSH 在远程 Linux 主机上读取、编辑、搜索和运行
README
由 DeepSeek 最新模型翻译生成dsh-ssh-remote
让 DeepSeek Harness(DSH)直接操作一台远程 Linux 主机:通过本机 ssh 读取和修改远程文件、搜索代码、执行命令,用起来和本地工具没有区别。
一个 DeepSeek Harness bundle,提供六个远程工具 —— run、read、write、edit、grep、glob —— 作用在一台 Linux 主机上,通过你本机的 SSH 配置访问。下面的安装说明用中文写。
[!WARNING]
免责声明:本插件不提供任何安全功能。 没有沙箱、没有权限校验、没有命令白名单、没有逐次确认;remote_ 工具以你的远程账号身份直接读文件、写文件、执行命令。哪些目录可以改、哪些命令能跑,需要你自己把握。
为什么做这个
DSH 桌面端只有 macOS 和 Windows,没有 Linux 版;而日常写代码的机器往往是一台 Linux 工作站。这个插件不搬运整个 harness,只把模型最需要的六件事接到 SSH 上,让「本机 DSH + 远程 Linux」组成一套完整的 vibe coding 环境。
展开完整文档(README 剩余 1 节)
dsh-ssh-remote 让 DeepSeek Harness(DSH)直接操作一台远程 Linux 主机:通过本机 ssh 读取和修改远程文件、搜索代码、执行命令,用起来和本地工具没有区别。 一个 DeepSeek Harness bundle,提供六个远程工具 —— run、read、write、edit、grep、glob —— 作用在一台 Linux 主机上,通过你本机的 SSH 配置访问。下面的安装说明用中文写。 [!WARNING] 免责声明:本插件不提供任何安全功能。 没有沙箱、没有权限校验、没有命令白名单、没有逐次确认;remote_ 工具以你的远程账号身份直接读文件、写文件、执行命令。哪些目录可以改、哪些命令能跑,需要你自己把握。 为什么做这个 DSH 桌面端只有 macOS 和 Windows,没有 Linux 版;而日常写代码的机器往往是一台 Linux 工作站。这个插件不搬运整个 harness,只把模型最需要的六件事接到 SSH 上,让「本机 DSH + 远程 Linux」组成一套完整的 vibe coding 环境。 工具 | 工具 | 作用 | | remote_bash | 在远程登录环境下执行命令,支持 cwd、超时、退出码 | | remote_read | 按行号读取远程文本,支持 offset/limit,尾部报告总行数 | | remote_write | 创建或原子替换远程文件,自动建父目录、保留权限 | | remote_edit | 字面替换,唯一性校验、原子写回、保留权限 | | remote_grep | 远程 ripgrep 搜索,支持 include 过滤、遵守 .gitignore | | remote_glob | 远程文件匹配,最多返回 500 条 | 插件还会注册一段系统提示,明确「这台 Linux 上的工作走 remote_,本机工具只碰 Mac」,避免模型误用本地工具去改远程文件。 安装 git clone git@github.com:<you>/dsh-ssh-remote.git 然后在 DSH 里对智能体说一句: 把 ~/code/dsh-ssh-remote 作为 bundle 安装到当前配置档并启用。 智能体会调用 plugin_manager 的 install_bundle,把该目录 link 进 ~/.dsh/profiles/<profile>/package.json 并登记到 bundle 列表,安装后立即生效,重启仍然有效。 安装是「目录链接」,所以不要移动或删除这个仓库目录;移动后需要重新安装。 配置免密 SSH 插件用 BatchMode=yes 调 ssh:只要远端要求输入密码或口令,调用就会直接失败,而不是卡住。所以先把「无交互登录」跑通。 1. 在本机生成密钥(已有可跳过) ls ~/.ssh/id_ed25519.pub || ssh-keygen -t ed25519 -C "$(whoami)@$(hostname)" 密钥带口令更安全,配合 ssh-agent / macOS 钥匙串即可无感使用(见第 4 步)。 2. 把公钥装到远程主机 ssh-copy-id -i ~/.ssh/id_ed25519.pub Linux 如果本机没有 ssh-copy-id,用等价的手工写法: cat ~/.ssh/id_ed25519.pub | ssh Linux \ 'mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys' 3. 写 ~/.ssh/config Host 后面的别名就是插件配置里的 host: Host Linux HostName 192.168.1.20 User zrt IdentityFile ~/.ssh/id_ed25519 IdentitiesOnly yes ServerAliveInterval 30 IdentitiesOnly yes 可以避免智能体里一堆密钥被依次试一遍(远程会报 Too many authentication failures)。 4. 密钥有口令时,交给 ssh-agent macOS: ssh-add --apple-use-keychain ~/.ssh/id_ed25519 同时在 ~/.ssh/config 的 Host 段里加: AddKeysToAgent yes UseKeychain yes Linux 客户端: eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519 5. 验证「真的不用交互」 ssh -o BatchMode=yes -o ConnectTimeout=10 Linux 'echo ok' 必须直接输出 ok,不出现任何提示。这一条通过,插件就能工作。 6. 排错 | 现象 | 处理 | | Permission denied (publickey) | ssh -v Linux 看实际尝试了哪把钥匙;确认 IdentityFile 写对 | | 仍然弹密码 | 公钥没进 authorized_keys,或 sshd 关了 PubkeyAuthentication | | bad permissions | chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys && chmod 700 ~ | | 登录成功但立刻断开 | 家目录或 .ssh 对 group/other 可写,sshd 会拒绝 | | Too many authentication failures | 加 IdentitiesOnly yes | | 每次都要输口令 | 没跑 ssh-add --apple-use-keychain,或 config 里少了 UseKeychain yes | | 想更收紧权限 | 在 authorized_keys 里给这把钥匙加 from="..."、command="..." 限制 | 插件配置 默认配置在 bundle 的 cordis.patch.yml 里,覆盖写在 ~/.dsh/profiles/<profile>/cordis.patch.yml: - id: ssh-remote config: host: Linux # ~/.ssh/config 里的 Host 别名 root: ~/projects # 相对路径的基准目录,默认 ~ bashTimeoutMs: 120000 maxOutputChars: 30000 - host:SSH 别名,默认 Linux。 - root:remote_* 工具的相对路径基准。把它指到常用项目目录,模型就能直接写 src/main.py 这种相对路径。 - bashTimeoutMs:remote_bash 的默认超时;单次调用可用 timeoutMs 覆盖。 - maxOutputChars:单次工具结果回填给模型的字符上限。 工作原理 每个工具调用就是一次 ssh 子进程: - 脚本通过 stdin 交给远端 bash -s,路径按 POSIX 单引号转义,不拼接不可信字符串; - 文件内容以 base64 传输,避免引号、换行、二进制问题; - 写入先落在同目录临时文件,再 mv 覆盖,并用 chmod --reference 保留原权限; - 连接复用 ControlMaster,socket 在 /tmp/dsh-ssh-<uid>/%C,多次调用只有第一次付握手成本; - 读取用一次 awk 扫描同时拿到窗口内容和总行数,只传需要的行。 安全边界 - 远程命令和写入使用远程账号的权限执行,没有额外沙箱;本机的 workspace-write 策略不约束远程主机。 - 插件直接调用 ssh,不经过本机 bash 沙箱,因此远程改动不受本机审批流程覆盖。 - 需要更细的控制时,可以在 authorized_keys 里用 from=、command=、permitopen= 限制这把钥匙的能力。 - SSH 私钥、authorized_keys 都不要提交到仓库。 自检 node test.mjs # 默认测 Linux 这个别名 TEST_HOST=myhost node test.mjs 脚本会在远端 /tmp/dsh-ssh-remote-test 下读写,结束时把目录改名收尾。17 项检查覆盖:命令执行、退出码、超时、写入建目录、分页读取、越界与缺失文件、二进制拒绝、替换唯一性、replace_all、Unicode、权限保留、grep/glob、相对 root 路径。 环境要求 - 远端:bash、awk、GNU coreutils(base64、stat -c、chmod --reference)、ripgrep。 - 本机:macOS 或 Linux,OpenSSH 客户端,Node.js 18+(仅自检脚本需要)。 - DSH 0.2.x;纯 Host bundle,无第三方依赖,不需要构建。 许可证 MIT © 2026 Ruitong Zhang
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
RuitongZhang/dsh-ssh-remote
通过 SSH 在远程 Linux 主机上读写文件、搜索代码并执行命令
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,125已汉化MCP
71.7
AI 架构文档生成器sopaco/deepwiki-rs
🚀 Litho 已进化为 Terrain —— 给你的 AI 智能体一张会呼吸的代码库地图。
★ 3,157已汉化DSH
70.8
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
AI 编程纪律方法包GanyuanRan/Aegis
让 AI 编程 agent 变得可信:少返工、更安全、说“完成”前先给证据。
★ 1,384已汉化DSH
69.6
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9