Skip to main content
Glama

主机台 HostConsole

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

English · 简体中文

License: MIT Platform MCP Electron Tests

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


Зачем нужна HostConsole

Вам наверняка знакома эта дилемма: хочется, чтобы ИИ помогал присматривать за NAS, сервером или роутером, но передавать SSH-ключи и пароли напрямую ИИ-клиенту как-то тревожно —

  • Как только ключ вставлен в конфигурацию ИИ, вы фактически отдаёте ему всю машину, и вы не можете быть уверены, где он будет записан;

  • Генерировать временный публичный ключ для ИИ и добавлять его в authorized_keys, а потом не забыть удалить — хлопотно и легко забывается;

  • Когда ИИ выполняет sudo, вы не видите, какую команду он собирается запустить, не говоря уже о возможности её одобрить;

  • При смене ИИ-клиента (Codex, OpenCode, ZCode…) всю процедуру авторизации придётся повторять заново.

Ответ HostConsole: ключи никогда не покидают ваш компьютер.

Вы вручную подключаетесь по SSH в HostConsole (пароль / приватный ключ, хранятся в зашифрованном виде на уровне системы), а затем передаёте «авторизованную сессию» ИИ через локальный MCP-мост. ИИ видит только псевдоним сессии (например, «домашний NAS»), может работать с терминалом, вы можете в любой момент поставить его на паузу или отключить — но он никогда не получит адрес, порт, имя пользователя и приватный ключ.

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

Related MCP server: SSH MCP Server

Сценарии использования

  • 🏠 Домашний NAS / домашний сервер: пусть ИИ проверит статус SMART, почистит Docker, исправит предупреждения RAID — но не хочется отдавать ему root-права

  • 🖥️ Личный VPS / рабочая машина: деплой, просмотр логов, правка конфигов nginx — ИИ работает, вы утверждаете

  • 🌐 Роутер / сетевое оборудование: иногда нужна помощь ИИ в диагностике, но учётные данные устройства ни в коем случае не должны утекать

  • 🔁 Пользователи нескольких ИИ-клиентов: Codex, OpenCode, ZCode, WorkBuddy используют один и тот же набор авторизованных SSH-сессий — при смене инструмента повторная авторизация не нужна

  • 🛡️ Те, кто ценит аудит: каждая команда sudo проходит через окно подтверждения, всплывающее у вас перед глазами, с полным текстом команды

Скриншоты

Главный экран (Центр подключения агентов + режим прав)

Мастер подключения агента

Центр подключения агентов (развёрнут)

Адаптивная вёрстка для узких экранов

Ключевые возможности

  • 🔐 Изоляция учётных данных: адрес SSH, порт и имя пользователя хранятся только в локальной конфигурации; пароль и приватный ключ шифруются через Electron safeStorage (защита учётных данных Windows) и сохраняются в отдельном хранилище. ИИ через MCP получает только псевдоним сессии и статус авторизации — всё остальное недоступно; это гарантируется специальными тестовыми проверками.

  • 🚦 Два режима прав: относительно безопасный (ИИ может выполнять только семь фиксированных категорий проверок на чтение: идентификация / система / хранилище / процессы / контейнеры / сервисы / логи) и полностью открытый (полные права терминала текущей SSH-учётной записи), переключение в один клик в любой момент.

  • 💳 Процесс одобрения sudo: когда ИИ требует повышения прав, он вызывает отдельный exec_sudo, HostConsole автоматически показывает всплывающее окно с исходным текстом команды, и только после вашего одобрения она выполняется. Опциональное окно без запроса на 30 минут (по умолчанию, настраивается от 0 до 240 минут); пароль sudo передаётся из локального хранилища напрямую на удалённую сторону через стандартный ввод SSH — не попадает в текст команды, не попадает в журнал терминала, не попадает в контекст ИИ.

  • 🟢 Центр подключения агентов: все подключённые ИИ отображаются в реальном времени в виде индикаторов состояния (онлайн / офлайн / управляет), у каждого агента есть отдельный переключатель подключения — выключение немедленно лишает его прав управления SSH и авторизации sudo, не затрагивая других агентов и не разрывая SSH.

  • 🧙 Мастер подключения в один клик: автоматически определяет и записывает шесть форматов конфигурации MCP: Codex TOML, OpenCode JSONC, ZCode, WorkBuddy и универсальные JSON/JSONC; перед записью доступен предпросмотр, автоматически создаётся резервная копия с меткой времени.

  • ✍️ Единственная аренда записи: в один момент времени только один агент может писать в терминал; другие агенты видят статус занятости, но не могут вставить команду; передача управления происходит только по вашему явному указанию («принять / принудительно перехватить»).

  • 🫸 Мгновенный разрыв: «Поставить ИИ на паузу» немедленно блокирует операции, но сохраняет SSH-подключение; «Разорвать соединение» одновременно отзывает авторизацию, аренду и права sudo.

  • 🖥️ Ручной ввод команд как запасной вариант: если ИИ отказывается выполнять или требуется интерактивный ввод, в интерфейсе есть встроенное поле ввода команд — вы вводите сами.

  • 🇨🇳 Полностью китайский интерфейс: создан для китайскоязычных пользователей — от режимов прав до сообщений об ошибках, ни одного английского термина, который нужно было бы переводить.

  • 29 тестов безопасности: изоляция учётных данных, эксклюзивность аренды, жизненный цикл sudo, десенсибилизация конфигурации и другие ключевые заявления о безопасности подкреплены автоматизированными тестами (npm test).

Быстрый старт

Требования к окружению

  • Windows 10/11

  • Node.js 20+ (включая npm)

Запуск

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

После закрытия окна приложения оно остаётся в системном трее, SSH-сессии при этом не разрываются.

Три шага для начала работы

  1. Подключение: нажмите «Новое подключение», выберите пароль SSH / вставьте приватный ключ / выберите файл ключа; при первом подключении проверьте и зафиксируйте SHA-256 отпечаток хоста (TOFU).

  2. Авторизация: после подключения выберите справа «Относительно безопасный» или «Полностью открытый».

  3. Призовите ИИ: скажите уже подключённому к HostConsole ИИ —

    К этой машине подключён SSH «домашний NAS», пожалуйста, проверь состояние диска и контейнеров Docker.

    ИИ автоматически обнаружит авторизованную сессию через MCP, получит контроль и начнёт работу.

Подключение вашего ИИ

HostConsole предоставляет MCP-сервис через локальный именованный канал (\\.\pipe\host-console-mcp), не прослушивая ни один TCP-порт — облачные агенты не могут до него добраться.

Самый простой способ — нажать в HostConsole кнопку «Подключить агента» и использовать встроенный мастер для автоматической записи конфигурации (с автоматическим резервным копированием и предпросмотром). Ниже приведены справочные конфигурации для ручной настройки:

Codex (~/.codex/config.toml)

[mcp_servers.host_console]
command = "node.exe 的完整路径"
args = ["C:\\path\\to\\host-console\\mcp\\server.mjs"]
startup_timeout_sec = 10
tool_timeout_sec = 60

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

"mcp": {
  "host_console": {
    "type": "local",
    "command": ["node.exe 的完整路径", "C:\\path\\to\\host-console\\mcp\\server.mjs"],
    "enabled": true,
    "timeout": 60000,
    "environment": {
      "HOST_CONSOLE_AGENT_LABEL": "OpenCode",
      "HOST_CONSOLE_CLIENT_KIND": "opencode"
    }
  }
}

ZCode (mcp.servers в ~/.zcode/cli/config.json), WorkBuddy (mcpServers в ~/.codebuddy/.mcp.json) и любой универсальный JSON/JSONC — подключаются по той же структуре, или используйте встроенный мастер.

После записи конфигурации необходимо полностью выйти и перезапустить соответствующий ИИ-клиент (MCP-клиент загружает конфигурацию только при запуске). После успешного подключения в «Центре подключения агентов» HostConsole появится зелёный индикатор, а псевдонимы авторизованных сессий и режимы прав будут синхронизированы с ИИ.

Модель безопасности

Что ИИ может видеть, а что нет

ИИ видит

ИИ не видит

Сессия

псевдоним (например, «домашний NAS»), статус подключения, режим прав

адрес хоста, порт, имя пользователя

Учётные данные

——

пароль SSH, приватный ключ, пароль sudo (все зашифрованы в локальном хранилище)

Операции

относительно безопасный: 7 фиксированных проверок на чтениеполностью открытый: любые команды + одобрение sudo

команды, обходящие одобрение sudo, отклоняются напрямую

Терминал

последний вывод (читаемый текст)

ваш ручной ввод не отображается

Многоуровневая защита

  1. Изоляция на уровне канала: MCP привязан только к локальному именованному каналу, без выхода в сеть и без открытия портов; никто за пределами этого компьютера не может подключиться.

  2. Единственная аренда записи: при параллельных агентах только один может управлять терминалом, перехват управления требует явного указания пользователя.

  3. Двухфакторное подтверждение: в сценарии с несколькими сессиями ИИ должен одновременно предоставить ID сессии и точный псевдоним, чтобы получить контроль; при несовпадении — отказ.

  4. Жизненный цикл sudo: временная авторизация привязана только к текущей сессии и текущему управляющему агенту; при паузе / разрыве / перехвате / понижении прав / истечении срока немедленно аннулируется, также можно завершить вручную в любой момент.

  5. Необратимость учётных данных: для смены учётных данных необходимо сначала разорвать SSH; старые учётные данные никогда не отображаются, новые записываются поверх в зашифрованном виде.

Известные ограничения

  • Вредоносный локальный процесс, работающий под тем же пользователем Windows, что и HostConsole, теоретически может подключиться к именованному каналу — не используйте режим «Полностью открытый» в недоверенном локальном окружении.

  • Сейчас это MVP: подписанный установочный пакет и автоматическое обновление пока не предоставляются.

Обзор инструментов MCP

9 инструментов, доступных на стороне ИИ:

Инструмент

Назначение

Требования к правам

get_bridge_status

просмотр подключённых ИИ-клиентов и авторизованных сессий (только псевдонимы и статус)

любые

list_authorized_sessions

обнаружение авторизованных SSH-сессий

любые

get_session_status

просмотр статуса подключения, режима авторизации, статуса паузы, текущего управляющего

любые

acquire_control

получение аренды записи для одного агента (при нескольких сессиях — двойное подтверждение ID + псевдоним)

любые

release_control

освобождение аренды (без разрыва SSH и отзыва авторизации)

любые

safe_inspect

7 фиксированных диагностик на чтение (идентификация / система / хранилище / процессы / контейнеры / сервисы / логи)

относительно безопасный

exec_terminal

выполнение произвольных команд Shell (с обнаружением sudo; команды с sudo отклоняются)

полностью открытый

exec_sudo

команды с повышением прав, выполняются после одобрения через окно подтверждения HostConsole

полностью открытый + одобрение

read_terminal

чтение последнего вывода интерактивного терминала

полностью открытый

Принцип работы

主机台 (Electron)
├── src/                    全中文桌面界面(React 19)
├── electron/
│   ├── main.cjs            窗口、托盘、命名管道服务、IPC
│   ├── session-manager.cjs 加密保险箱、SSH 连接池、授权与租约、sudo 审批
│   ├── agent-config.cjs    6 种格式的 Agent 配置向导(预览 + 备份 + 原子写入)
│   └── policy.cjs          只读命令白名单、公开信息脱敏
├── mcp/server.mjs          MCP 桥接服务(stdio → 命名管道)
└── tests/                  29 项安全与行为测试

FAQ

В: Как ИИ узнаёт, что нужно вызывать HostConsole? После подключения MCP HostConsole в инициализационном сообщении активно синхронизирует с ИИ псевдонимы авторизованных сессий и режимы прав. Вам достаточно дать задачу как обычно: «К этой машине подключён SSH домашнего NAS, пожалуйста…».

В: Можно ли использовать другой ИИ-клиент? Да. Авторизация привязана к SSH-сессии, а не к агенту. Любой локальный ИИ, подключённый к MCP HostConsole, может обнаружить и (при свободной аренде) перехватить ту же сессию.

В: Что будет, если одновременно подключено несколько SSH? ИИ должен предоставить двойное подтверждение — ID сессии и точный псевдоним, чтобы предотвратить управление не тем хостом.

В: Увидит ли ИИ пароль sudo? Нет. Пароль расшифровывается из локального хранилища и передаётся напрямую удалённому sudo через стандартный ввод SSH, не проходя через ИИ, не попадая в текст команды и журнал терминала (есть специальные тестовые проверки).

В: Пропадут ли учётные данные при отключении питания / выключении? Нет. Файл хранилища сохраняется в каталоге данных пользователя Windows и шифруется системной защитой учётных данных; но не копируйте файл хранилища на недоверенные машины.

В: Поддерживаются ли Linux / macOS? Интерфейс и логика не имеют платформенных предположений, но в настоящее время разработка и проверка ведутся на Windows; safeStorage на других платформах использует их системные связки ключей. Приветствуются отзывы по результатам тестирования.

Разработка

npm run dev      # 浏览器开发预览
npm run desktop  # 构建并启动 Electron 桌面版
npm test         # 29 项测试

Перед участием в разработке прочитайте AGENTS.md, чтобы ознакомиться с договорённостями о продуктовых решениях проекта.

Лицензия

MIT © 2026 участники host-console

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    C
    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
    5
    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.
    43
    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.

View all related MCP servers

Related MCP Connectors

  • Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.

  • Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.

  • MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tuweihuasheng/host-console'

If you have feedback or need assistance with the MCP directory API, please join our Discord server