← ClaudeAtlas

hssh-agentlisted

通过 hssh 的本地 Agent 接口(REST API / MCP)控制 SSH 会话与 GUI 终端窗口。当用户要求在远程服务器上执行命令、上传/下载文件、读取 SSH 终端输出、或让 AI 接管 hssh 里打开的 SSH 窗口时触发此 skill。
hyyy-y/hssh · ★ 0 · AI & Automation · score 73
Install: claude install-skill hyyy-y/hssh
# hssh Agent 使用指南 hssh 是本地运行的 SSH 客户端,内置 Agent 能力。本 skill 描述 AI 如何通过接口控制 SSH 连接和终端窗口。 **前提**:Agent 只监听 `127.0.0.1`,需要在 hssh GUI 中通过 `Tools → Start Agent` 启动(勾选 "Auto-start Agent with GUI" 后自动启动),或命令行 `hssh --agent-http [--port 8222]`。 **两种会话模型,先确认用哪个**: | 模型 | 场景 | 说明 | |------|------|------| | **GUI 标签页控制** | 用户在 hssh GUI 里已经开好 SSH 窗口,AI 接管它 | `/api/v1/tabs/*` 接口,直接读写终端缓冲区 | | **Agent 托管会话** | AI 自己创建新的 SSH 连接执行命令 | `/api/v1/sessions/*` 接口(或 MCP 工具) | --- ## 一、快速开始(最常用流程) > AI 接管用户在 GUI 里已经打开的 SSH 窗口: ```powershell # 1. 确认 agent 在运行 Invoke-RestMethod http://127.0.0.1:8222/api/v1/status # 2. 列出打开的终端标签(找到 SSH 标签的 index) Invoke-RestMethod http://127.0.0.1:8222/api/v1/tabs # 3. 发送命令到该标签(自动追加回车) Invoke-RestMethod -Method POST http://127.0.0.1:8222/api/v1/tabs/1/send ` -ContentType "application/json" -Body '{"command":"uname -a"}' # 4. 等待执行完成,读取终端输出 Start-Sleep -Seconds 2 Invoke-RestMethod "http://127.0.0.1:8222/api/v1/tabs/1/text?lines=50" ``` bash/curl 同理(`curl -X POST ... -d '{"command":"..."}'`)。 **关键原则**:tabs 接口是"读终端缓冲区",不是同步 RPC——发送命令后必须等输出回来(sleep 后读 text,必要时轮询),再解析结果。 ## 二、密码安全模型(必读) **任何接口都不接受明文密码**。模型/工具只能使用密文或会话名: | 方式 | 说明 | 适用 | |------|------|------| | **会话名引用** | `{"sessionName":"root"}`,hssh 用库内凭据,凭据不出进程 | **首选**,模型连密文都不用见 | | **密文** | `passwordCipher` = `base64(RSA-OAEP-SHA256(明文))`,公钥见 `GET /api/v1/keys` | 无库存凭据的新主机 | | 明文 `password` | **一律 400 拒绝** | — | - 公钥获取:`GET /api/v1/keys` → `{publicKeyPem, fingerprint}`;私钥只存在 hssh 本机(GCM 加密落盘) - 本地产密