阿里云 ECS 一键连接:DSH 里一条命令开机并弹出 SSH

前言

用 DeepSeek Harness(DSH)做开发时,如果阿里云 ECS 是「用时才开」的按量实例,每次连服务器往往要先登控制台点启动、等状态变运行、再复制公网 IP,最后在本地重敲 ssh -i ...。这些步骤和 DSH 里的对话流是割裂的。社区插件 dsh-aliyun-ecs-connect(维护者 SepTem61r,分类:联网工具)把开机、查当前公网 IP、打开已配置好的 SSH 终端收进 DSH 的斜杠命令和自然语言工具调用里。下面介绍它做什么、怎么装、怎么配。

这是什么

dsh-aliyun-ecs-connect 是 DSH 的 bundle 插件:通过阿里云 ECS OpenAPI(DescribeInstances、StartInstance、StopInstance)管理你指定的一台实例,并在就绪后用本机终端执行 SSH。插件代码不内置你的账号信息;实例 ID、地域、私钥路径写在用户目录下的 JSON,AccessKey 单独存放。README 标明平台为 Windows,依赖为 0(运行时只用 Node 内置模块),许可证 MIT。当前 package.json 版本为 0.3.0。

目录页:SkillHub 插件页
源码:GitHub — SepTem61r/dsh-aliyun-ecs-connect

核心功能

执行 /connect 时,插件会查实例状态与公网 IP;若实例已停止则调用开机接口,按配置间隔轮询直到运行且有 IP,并等待 SSH 端口可用后按 terminal 设置交付终端(默认 auto 优先 Windows Terminal)。已在运行时再次 /connect 不会重复开机,只查 IP 并开终端。

入口 作用
/connect 按需开机 → 查 IP → 等 SSH → 打开或展示连接方式
/ecs-status 仅查看状态与公网 IP,不会启动实例
/ecs-stop 停机(按量实例可走节省停机模式,见 README「费用与省钱」)
自然语言 例如「帮我连一下服务器」,AI 可调用 ecs_connect 工具
autoConnect 配置为 true 时 DSH 启动后自动连接;默认 false

公网 IP 每次现查,不依赖固定 EIP;README 对「为什么不需要弹性公网 IP」有单独说明。

安装与启用

先确认本机已能手动 SSH 登录目标实例(用户名、.pem、安全组 22 端口),并准备好 RAM 子账号 AccessKey(不要用主账号密钥;策略仅需对该实例的查/启/停,详见 README「准备工作」)。

1. 安装 DSH

需要 Node.js 20 及以上,在 PowerShell 中:

npx @deepseek-ai/dsh@latest web

浏览器打开命令提示的地址(一般为 http://127.0.0.1:3080)。

2. 取得插件目录

README 推荐将仓库放到本地目录(示例路径 D:\dsh-aliyun-ecs-connect):

git clone https://github.com/SepTem61r/dsh-aliyun-ecs-connect.git D:\dsh-aliyun-ecs-connect

3. 安装 bundle

在 DSH 聊天框发送(让 AI 调用插件管理器安装到当前 profile):

帮我把 `D:\dsh-aliyun-ecs-connect` 这个目录作为插件安装到当前 profile,装好后告诉我。

也可在 DSH 内通过插件管理器的 install_bundle 指向同一目录。若提示缺少 pnpm,可先 npm install -g pnpm 后重装;pnpm 仅安装阶段需要。

4. 写配置并重启 DSH

在用户目录创建两个 JSON(路径中的反斜杠在 JSON 里写成 \\):

%USERPROFILE%\.dsh\aliyun-ecs-settings.json — 实例与 SSH:

{
  "regionId": "cn-hongkong",
  "instanceId": "i-你的实例ID",
  "sshUser": "root",
  "identityFile": "D:\\path\\to\\your-key.pem",
  "sshPort": 22,
  "terminal": "auto",
  "autoConnect": false
}

%USERPROFILE%\.dsh\aliyun-ecs.json — API 凭证:

{ "accessKeyId": "LTAI你的ID", "accessKeySecret": "你的Secret" }

也可用环境变量 ALIYUN_ACCESS_KEY_ID / ALIYUN_ACCESS_KEY_SECRET(优先级更高)。改完配置需重启 DSH(插件与配置在启动时读取)。

输入 / 能看到 connect、ecs-status、ecs-stop 即表示安装成功。

典型用法

先只读状态,避免误开机:

/ecs-status

需要连服务器时:

/connect

成功时 README 示例:DSH 显示实例 Running、公网 IP 与等价 ssh -i ... 命令,并弹出 Windows Terminal 窗口且已连上。

停机:

/ecs-stop

更多字段(startTimeoutMs、pollIntervalMs、sshReadyTimeoutMs、terminal 取 wt / cmd / dsh / none 等)见 README「写两个配置文件」表格。

适用场景与注意

适合在 Windows 上、持有单台(或策略限定)按量 ECS、习惯「关机的省钱、用时再开」的用户;学生党按 README 自述是典型受众,但任何符合上述条件的人都能用。

安装前应在 GitHub 阅读源码与 MIT 许可证,并理解插件以当前 DSH 进程权限运行:AccessKey 与私钥路径落在本机 %USERPROFILE%\.dsh\,需自行做好 RAM 最小权限与文件权限(README「安全须知」、可选 icacls 收紧密钥文件)。社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系;插件星标等数据以仓库页面为准。

排错与 FAQ(如 Forbidden.RAM、路径转义、终端未弹出)见 README「排错手册」「常见问题 FAQ」。

结尾

dsh-aliyun-ecs-connect 把「控制台开机 + 抄 IP + 拼 SSH」收成 DSH 里的 /connect 或一句话,让按量 ECS 的日常连接更贴近 Harness 里的工作流。进一步了解:

  • 目录页:https://www.skillhub.cn/plugins/SepTem61r/dsh-aliyun-ecs-connect
  • GitHub:https://github.com/SepTem61r/dsh-aliyun-ecs-connect
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye