dshbase

插件目录 / Developer / dsh-ssh-tunnel

dsh-ssh-tunnel

已验证 · 实测可装 thirsty5034

✓ 持续维护 基于 1 个官方 DSH 包

查看 GitHub ↗ ← 返回插件目录

0Stars
0Forks
0未关闭 issue
—语言
2026-08-18最近推送
跨平台平台

功能简介

DSH community plugin: multi-host SSH tunnel + SSHManager (better-sidebar)

✅
我们的评价
可用 — 实测通过,早期项目

DSH community plugin: multi-host SSH tunnel + SSHManager (better-sidebar) 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

dsh-ssh-tunnel

English | 简体中文

DeepSeek Harness community plugin: multi-host SSH tunnel + SSHManager for dsh-better-sidebar.

  • Host inventory + secrets (never exposed to the model)
  • Project-scoped authorization (projectPathKey = workspace cwd)
  • Model tool SSHManager (exec, SFTP, session strategies)
  • Sidebar tab for connect / grants
  • Center overlay: interactive terminal (xterm) and dual-pane SFTP

Does not replace global fs / subprocess with a single remote disk.

Companion: dsh-git-forge (Git credentials + push policy).

Credits / prior art

Product shape and several UX patterns are informed by open-source LiveAgent (multi-host SSH inventory, project-scoped access, sidebar tunnel management, center terminal / SFTP surfaces).

This package is a DSH-native implementation (Cordis host/client plugin, dsh-better-sidebar tab, SSHManager tool, DSH-local secret layout). It is not a git fork of LiveAgent and does not vendor LiveAgent sources. Consult LiveAgent under its own license when comparing designs.

Requirements

  • DSH web profile with dsh-better-sidebar (≥ 0.12)
  • Node.js 18+
  • Network access to your SSH targets

Install

macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/thirsty5034/dsh-ssh-tunnel/main/scripts/install.sh | bash

Windows (PowerShell):

irm https://raw.githubusercontent.com/thirsty5034/dsh-ssh-tunnel/main/scripts/install.ps1 | iex

Or CLI (GitHub source until npm publish):

export DSH_HOME=${DSH_HOME:-$HOME/.dsh}
dsh plugin --profile web add "dsh-ssh-tunnel@github:thirsty5034/dsh-ssh-tunnel"
dsh --profile web --dump-config | grep ssh-tunnel

Restart DSH web after host-side changes, then hard-refresh the browser.

Options / local link / npm (later)
bash scripts/install.sh --restart
bash scripts/install.sh --from npm 0.3.6
dsh plugin --profile web add "dsh-ssh-tunnel@link:/path/to/dsh-ssh-tunnel"

Discoverability

  • GitHub topics: dsh-plugin, deepseek-harness, dsh (required for dsh.so auto-index)
  • Install from GitHub (current): see Install above
  • Store listings may lag crawlers; source of truth is this repository

Data layout

Under $DSH_HOME/ssh-tunnel/ (mode 0700):

File Purpose
hosts.json Non-secret host metadata
secrets.json Passwords / PEM / passphrases (0600)
grants.json projectPathKey → hostIds[]
known_hosts.json Trusted host key fingerprints

Sidebar

  1. Hosts — CRUD, OpenSSH scan import
  2. Project access — which hosts the current project may use (grant before connect; Connect does not auto-authorize)
  3. Sessions — Connect / disconnect; open Terminal or SFTP. Dropped sessions stay as tombstones with Reconnect (same id) or Close. Unexpected drops auto-reconnect up to 3 times. ssh2 keepalive is 30s × 3.

Model tool

SSHManager action=list_hosts
SSHManager action=exec host_id=<id> command="uname -a"
SSHManager action=sftp_list host_id=<id> path=/

Session strategies: reuse_or_create (default; revives a disconnected session for that host), new, require_existing, or explicit session_id.
timeout_ms (1000–300000) applies to exec / SFTP / shell. Defaults: exec and SFTP metadata 30s, SFTP transfer 120s.
keyboardInteractive hosts are never auto-dialed by the tool; connect in the UI first. They cannot reconnect in place.

Security

  • Tool and list APIs must not return password / PEM / passphrase
  • Local upload/download paths are constrained to the project root and /workspace
  • Host keys are stored as SHA256 hex in known_hosts.json; first connect / rotation prompts in the sidebar (fingerprint shown)
  • HTTP API is fenced like other DSH local plugins (loopback / trusted hosts)
  • Prefer key-based auth; rotate secrets if secrets.json may have leaked

Internationalization (UI)

  • Namespace: sshTunnel
  • Dictionaries: zh / en on ctx.locale
  • Tab title and panel track DSH locale preference live

Host SSHManager strings stay English (model-facing).

Development

npm test
npm run check
./scripts/sync-to-dsh.sh   # requires DSH_HOME; keeps local-plugins copy

xterm loading

Prefers a bundled @xterm/xterm when available; otherwise falls back to jsDelivr CDN (needs network / CSP allowlist).

License

MIT — see LICENSE.

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-ssh-tunnel」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

dsh plugin --profile web add github:thirsty5034/dsh-ssh-tunnel

Headless(CLI)profile:

dsh plugin --profile headless add github:thirsty5034/dsh-ssh-tunnel

实测报告

验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7819 个插件 →