host_console
主机台 HostConsole
把 SSH 交给 AI 操作,但把密钥留在自己手里。
English · 简体中文
特性 · 截图 · 快速开始 · 接入你的-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-сессии при этом не разрываются.
Три шага для начала работы
Подключение: нажмите «Новое подключение», выберите пароль SSH / вставьте приватный ключ / выберите файл ключа; при первом подключении проверьте и зафиксируйте SHA-256 отпечаток хоста (TOFU).
Авторизация: после подключения выберите справа «Относительно безопасный» или «Полностью открытый».
Призовите ИИ: скажите уже подключённому к 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 = 60OpenCode (~/.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, отклоняются напрямую |
Терминал | последний вывод (читаемый текст) | ваш ручной ввод не отображается |
Многоуровневая защита
Изоляция на уровне канала: MCP привязан только к локальному именованному каналу, без выхода в сеть и без открытия портов; никто за пределами этого компьютера не может подключиться.
Единственная аренда записи: при параллельных агентах только один может управлять терминалом, перехват управления требует явного указания пользователя.
Двухфакторное подтверждение: в сценарии с несколькими сессиями ИИ должен одновременно предоставить ID сессии и точный псевдоним, чтобы получить контроль; при несовпадении — отказ.
Жизненный цикл sudo: временная авторизация привязана только к текущей сессии и текущему управляющему агенту; при паузе / разрыве / перехвате / понижении прав / истечении срока немедленно аннулируется, также можно завершить вручную в любой момент.
Необратимость учётных данных: для смены учётных данных необходимо сначала разорвать SSH; старые учётные данные никогда не отображаются, новые записываются поверх в зашифрованном виде.
Известные ограничения
Вредоносный локальный процесс, работающий под тем же пользователем Windows, что и HostConsole, теоретически может подключиться к именованному каналу — не используйте режим «Полностью открытый» в недоверенном локальном окружении.
Сейчас это MVP: подписанный установочный пакет и автоматическое обновление пока не предоставляются.
Обзор инструментов MCP
9 инструментов, доступных на стороне ИИ:
Инструмент | Назначение | Требования к правам |
| просмотр подключённых ИИ-клиентов и авторизованных сессий (только псевдонимы и статус) | любые |
| обнаружение авторизованных SSH-сессий | любые |
| просмотр статуса подключения, режима авторизации, статуса паузы, текущего управляющего | любые |
| получение аренды записи для одного агента (при нескольких сессиях — двойное подтверждение ID + псевдоним) | любые |
| освобождение аренды (без разрыва SSH и отзыва авторизации) | любые |
| 7 фиксированных диагностик на чтение (идентификация / система / хранилище / процессы / контейнеры / сервисы / логи) | относительно безопасный |
| выполнение произвольных команд Shell (с обнаружением sudo; команды с sudo отклоняются) | полностью открытый |
| команды с повышением прав, выполняются после одобрения через окно подтверждения HostConsole | полностью открытый + одобрение |
| чтение последнего вывода интерактивного терминала | полностью открытый |
Принцип работы
主机台 (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
This server cannot be deployed
Maintenance
Related MCP Connectors
- emisarOAuthdev.emisar
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Connect any AI agent to 1,000+ apps and 27,000+ actions through one remote MCP server (OAuth).
Related MCP Servers
- AlicenseAqualityBmaintenanceAn 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.17272 PyPI30MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives AI agents SSH capabilities to execute commands, transfer files, and inspect remote systems through a preconfigured host list.48 npmMIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server for managing remote SSH servers, enabling AI agents to execute commands, transfer files, and perform deployment operations securely.MIT
- FlicenseNot gradedqualityBmaintenanceAn 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.-