Skip to main content
Glama

主机台 HostConsole

把 SSH 交给 AI 操作,但把密钥留在自己手里。

English · 简体中文

Version License: MIT Platform MCP Native Tests

特性 · 截图 · 快速开始 · 接入你的-ai · 安全模型 · 工作原理 · FAQ


当前版本:主机台已完全迁移到 Tauri 2 + Rust 原生架构,直接使用 Windows WebView2,不再捆绑 Electron/Chromium。程序、数据、缓存和日志均可保存在 E 盘便携目录。

为什么需要主机台

你大概也遇到过这种纠结:想让 AI 帮你照看 NAS、服务器或路由器,但把 SSH 密钥、密码直接交给一个 AI 客户端,总觉得不踏实——

  • 密钥一旦粘贴进 AI 配置,就等于交出了整台机器,而你无法确定它会被记录到哪里;

  • 给 AI 生成临时公钥再装进 authorized_keys,用完还要记得清理,麻烦且容易遗忘;

  • AI 执行 sudo 时你根本看不到它要跑什么命令,更谈不上审批;

  • 换一个 AI 客户端(Codex、OpenCode、ZCode……),整套授权流程又要重来一遍。

主机台的答案:密钥永不离开你的电脑。

你在主机台里手动连接 SSH(密码 / 私钥,系统级加密保存),再把"已授权的会话"通过本机 MCP 桥接器交给 AI。AI 全程只看到会话别名(比如「家里 NAS」),能操作终端、能被你随时暂停和断开——但永远拿不到地址、端口、用户名和私钥。

┌─────────────┐   SSH 凭据只到这里,加密保存    ┌──────────────┐
│   你本人     │ ────────────────────────────▶ │  你的 NAS /  │
│  (主机台 UI) │ ◀──────────────────────────── │   服务器      │
└──────┬──────┘        已建立的 SSH 会话        └──────────────┘
       │ 授权(相对安全 / 完全开放)
       ▼
┌──────────────┐  本机命名管道(不出网、不开端口) ┌─────────────┐
│  主机台 MCP   │ ◀──────────────────────────▶ │  AI Agent   │
│   桥接器      │      只传命令与输出、别名        │ Codex 等     │
└──────────────┘                                └─────────────┘

Related MCP server: SSH MCP Server

适用场景

  • 🏠 家用 NAS / 家庭服务器:让 AI 帮你查 SMART 状态、清理 Docker、修 RAID 告警,但不想把 root 权限交给它

  • 🖥️ 个人 VPS / 开发机:部署、看日志、改 nginx 配置,AI 干活你审批

  • 🌐 路由器 / 网络设备:偶尔需要 AI 帮忙诊断,但设备凭据绝不能外流

  • 🔁 多 AI 客户端用户:Codex、OpenCode、ZCode、WorkBuddy 共享同一组已授权 SSH 会话,换工具不用重新授权

  • 🛡️ 重视审计的人:每条 sudo 命令都要经过你眼前弹出的审批框,命令原文清清楚楚

截图

主界面(Agent 接入中心 + 权限模式)

Agent 接入向导

Agent 接入中心(展开)

窄屏响应式

核心特性

  • 🔐 凭据隔离:SSH 地址、端口、用户名只存在本地配置;Windows 凭据管理器保存随机主密钥,密码与私钥使用 AES-256-GCM 加密进入本地保险箱。AI 通过 MCP 只能拿到会话别名和授权状态,其余一概不可见。

  • 🚦 双权限模式:相对安全(AI 只能执行身份 / 系统 / 存储 / 进程 / 容器 / 服务 / 日志七类固定只读检查)和完全开放(当前 SSH 账号的完整终端权限),随时一键切换。

  • 💳 sudo 审批流:AI 需要提权时调用单独的 exec_sudo,主机台自动弹窗展示命令原文,你批准后才执行。支持临时免询问窗口(默认 30 分钟,0–240 分钟可调),也可为单台主机开启「sudo 永久免询问」;sudo 密码由本地保险箱经 SSH 标准输入直接交给远端,不进入命令文本、不进入终端记录、不进入 AI 上下文。

  • 🟢 Agent 接入中心:所有接入的 AI 以状态灯形式实时展示(在线 / 离线 / 正在控制),每个 Agent 带独立连接开关——关掉立即释放它的 SSH 控制权和 sudo 授权,不影响其他 Agent、不断开 SSH。

  • 🧙 一键接入向导:自动识别并写入 Codex TOML、OpenCode JSONC、ZCode、WorkBuddy 及通用 JSON/JSONC 六种 MCP 配置格式,写入前可预览、自动生成带时间戳的备份。

  • ✍️ 写入控制可配置:默认同一时刻只有一个 Agent 能写入终端,其他 Agent 可见占用状态但无法插入命令;也可按 SSH 会话开启「多 Agent 同时写入」,让多个 Agent 并行操作。关闭开关会立即重置所有写入授权。

  • 🫸 即时熔断:「暂停 AI」立刻阻断操作但保持 SSH 连接;「断开连接」同时撤销授权、租约和 sudo 授权。

  • 🖥️ 本机手动命令兜底:AI 拒绝执行或需要交互输入时,界面内置命令输入框,你亲手敲。

  • 🇨🇳 全中文界面:为中文用户打造,从权限模式到错误提示没有一个英文术语需要查翻译。

  • ✅ 自动化安全测试:凭据隔离、租约独占、sudo 生命周期、配置脱敏、原生配置写入等核心行为均有回归测试。

快速开始

方式一:下载便携版(推荐)

到 Releases 下载便携包,解压即用(Windows 10/11 x64;WebView2 运行库系统自带)。程序、数据、日志都生成在解压目录内,放到哪个盘都行。

方式二:从源码构建

环境要求:

  • Windows 10/11

  • Node.js 20+(前端开发)

  • Rust stable 与 Microsoft C++ Build Tools(仅源码构建需要)

git clone https://github.com/tuweihuasheng/host-console.git
cd host-console
npm install
npm run desktop

上述命令启动 Tauri + Rust 原生主机台。

应用窗口关闭后会驻留系统托盘,SSH 会话不会因此断开。

三步上手

  1. 连接:点「新建连接」,选择 SSH 密码 / 粘贴私钥 / 选择密钥文件;首次连接核对并固定主机 SHA-256 指纹(TOFU)。

  2. 授权:连接后在右侧选择「相对安全」或「完全开放」。

  3. 召唤 AI:对你已接入主机台的 AI 说——

    本机已连接「家里 NAS」的 SSH,请帮我检查磁盘和 Docker 容器状态。

    AI 会通过 MCP 自动发现已授权会话、获取控制权并开始干活。

接入你的 AI

主机台通过本机命名管道提供 MCP 服务(\\.\pipe\host-console-mcp),不监听任何 TCP 端口,云端 Agent 无法触达。

最简单的方式是在主机台里点「接入 Agent」按钮,用内置向导自动写入配置(支持自动备份与预览)。以下为手动配置参考:

Codex(~/.codex/config.toml)

[mcp_servers.host_console]
command = "C:\\path\\to\\host-console\\app\\host-console-mcp.exe"
args = []
startup_timeout_sec = 10
tool_timeout_sec = 7200
enabled = true

[mcp_servers.host_console.env]
HOST_CONSOLE_AGENT_LABEL = "Codex"
HOST_CONSOLE_CLIENT_KIND = "codex"

OpenCode(~/.config/opencode/opencode.jsonc)

"mcp": {
  "host_console": {
    "type": "local",
    "command": ["C:\\path\\to\\host-console\\app\\host-console-mcp.exe"],
    "enabled": true,
    "timeout": 7200000,
    "environment": {
      "HOST_CONSOLE_AGENT_LABEL": "OpenCode",
      "HOST_CONSOLE_CLIENT_KIND": "opencode"
    }
  }
}

桥接器是随主机台一起发布的原生小程序 host-console-mcp.exe(与主程序同目录),不需要安装 Node.js,也不要再指向旧的 mcp/server.mjs。

ZCode(~/.zcode/cli/config.json 的 mcp.servers)、WorkBuddy(~/.codebuddy/.mcp.json 的 mcpServers)及任意通用 JSON/JSONC 均可按同样结构接入,或直接用内置向导写入。

配置写入后需完全退出并重启对应 AI 客户端(MCP 客户端只在启动时加载配置)。接入成功后,主机台「Agent 接入中心」会出现绿色状态灯,并把已授权会话的别名与权限模式同步给 AI。

安全模型

AI 能看到什么、不能看到什么

AI 可见

AI 不可见

会话

别名(如「家里 NAS」)、连接状态、权限模式

主机地址、端口、用户名

凭据

——

SSH 密码、私钥、sudo 密码(全部加密存本地保险箱)

操作

相对安全:7 类固定只读检查完全开放:任意命令 + sudo 审批

绕过 sudo 审批的命令会被直接拒绝

终端

最近输出(可读文本)

你的手动输入不回显

多重防线

  1. 管道级隔离:MCP 只绑定本机命名管道,不出网、不开端口;同一台电脑之外无人能连。

  2. 写入授权默认独占:同一时刻只有一个 Agent 能写入终端,接管需要用户明示;也可按会话显式开启「多 Agent 同时写入」。

  3. 双因子确认:多会话场景下,AI 必须同时提供会话 ID 和准确别名才能获取控制权,不匹配即拒绝。

  4. sudo 生命周期:默认逐次确认,也可临时授权;临时授权只绑定当前会话与当前控制 Agent,暂停 / 断开 / 接管 / 降权 / 到期立即失效。用户也可为单台主机明确开启“sudo 永久免询问”,但它仍受完全开放模式、Agent 开关和控制租约约束,并可随时关闭。

  5. 凭据不可逆:更换凭据需先断开 SSH;旧凭据永不回显,新凭据加密覆盖。

已知边界

  • 与主机台运行在同一 Windows 用户下的恶意本地进程理论上仍可连接命名管道——请勿在不可信本机环境中使用「完全开放」模式。

  • 当前安装包尚未购买代码签名证书,首次安装时 Windows SmartScreen 可能显示“未知发布者”;请核对文件名与 SHA-256 后再继续。

  • 暂未提供自动更新。

MCP 工具一览

AI 侧可调用的 9 个工具:

工具

用途

权限要求

get_bridge_status

查看接入的 AI 客户端与已授权会话(仅别名与状态)

任意

list_authorized_sessions

发现已授权 SSH 会话

任意

get_session_status

查看连接、授权模式、暂停状态、当前控制者

任意

acquire_control

获取单 Agent 写入租约(多会话需 ID + 别名双确认)

任意

release_control

释放租约(不断开 SSH、不撤销授权)

任意

safe_inspect

7 类固定只读诊断(身份 / 系统 / 存储 / 进程 / 容器 / 服务 / 日志)

相对安全

exec_terminal

执行任意 Shell 命令(含 sudo 检测,混入 sudo 会被拒绝)

完全开放

exec_sudo

提权命令,经主机台审批框批准后执行

完全开放 + 审批

read_terminal

读取交互终端最近输出

完全开放

工作原理

主机台 (Tauri 2 + Rust + 系统 WebView2)
├── src/                    全中文 React 界面
└── src-tauri/src/
    ├── manager.rs          SSH 会话、授权、租约与 sudo 审批
    ├── vault.rs            Windows 凭据管理器 + AES-GCM 保险箱
    ├── bridge.rs           本机命名管道服务
    ├── agent_config.rs     Agent 配置向导
    └── bin/...             原生 MCP stdio 桥接器

FAQ

Q:AI 怎么知道要调用主机台? 接入 MCP 后,主机台会在初始化说明中把已授权会话的别名与权限模式主动同步给 AI。你只需像平常一样下任务:"本机已连接家里 NAS 的 SSH,请……"。

Q:换个 AI 客户端还能用吗? 能。授权绑定在 SSH 会话上,不绑定 Agent。任何已接入主机台 MCP 的本机 AI 都能发现并(在租约空闲时)接管同一会话。

Q:同时连多台 SSH 会怎样? AI 必须同时提供会话 ID 和准确别名双重确认,防止操作错主机。

Q:长任务会被超时杀掉吗? 单 Agent 模式没有超时,命令可以一直跑。开启「多 Agent 同时写入」后,为防止单条卡死命令长期占用并发通道,连续 10 分钟没有任何输出的命令会被终止;只要持续有输出(编译、下载等)就不会触发。超长任务建议后台化后轮询日志。

Q:sudo 密码会不会被 AI 看到? 不会。密码由本地保险箱解密后经 SSH 标准输入直接交给远端 sudo,全程不经过 AI、不进入命令文本和终端记录(有专门测试断言)。

Q:能否让 sudo 不再每次弹窗? 可以。在该 SSH 的“sudo 提权设置”中打开“sudo 永久免询问”并保存密码。开启后只有完全开放模式下、持有该会话控制权且未被关闭的 Agent 能直接提权;关闭开关会立即恢复逐次确认。

Q:断电 / 关机后凭据会丢吗? 不会。保险箱保存在程序旁的 data 目录,并由 Windows 凭据项保护。请勿把保险箱文件复制到不受信任的机器。

Q:支持 Linux / macOS 吗? 当前原生凭据保险箱与命名管道针对 Windows 10/11 实现并验证;其他平台尚未开放安装包。

开发

npm run dev      # 浏览器开发预览
npm run desktop  # 启动 Tauri 原生桌面版
npm test         # 运行 Rust 原生测试
npm run package:win # 构建 E 盘便携目录与 ZIP

正式程序位于项目 app 目录,便携 ZIP 和 SHA-256 输出到打包脚本指定的发布目录。它不捆绑 Chromium、Electron 或 Node.js;data、webview-data、logs 默认写在程序旁,不会另行安装到 C 盘。Windows 已有的 WebView2 运行库及系统凭据管理器由操作系统统一提供。

参与开发请阅读 AGENTS.md 了解项目的产品决策约定。

许可证

MIT © 2026 host-console contributors

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that gives AI agents SSH access to remote machines through your local OpenSSH client, enabling remote command execution, file transfer, persistent shell sessions, and port forwarding.
    17
    272 PyPI
    30
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that gives AI agents SSH capabilities to execute commands, transfer files, and inspect remote systems through a preconfigured host list.
    48 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server for managing remote SSH servers, enabling AI agents to execute commands, transfer files, and perform deployment operations securely.
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that enables AI to execute SSH commands on remote servers using the host's OpenSSH client, supporting both configured targets and dynamic connections with request-scoped credentials.
    -