Skip to main content
Glama

主机台 HostConsole

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

English · 简体中文

License: MIT Platform MCP Electron Tests

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


Por qué necesitas HostConsole

Seguramente te has encontrado con este dilema: quieres que la IA te ayude a cuidar tu NAS, servidor o router, pero entregar tus claves SSH y contraseñas directamente a un cliente de IA no te da tranquilidad:

  • Una vez que pegas la clave en la configuración de la IA, estás entregando toda la máquina, y no puedes saber dónde quedará registrada;

  • Generar una clave pública temporal para la IA e instalarla en authorized_keys, y luego acordarte de limpiarla, es engorroso y fácil de olvidar;

  • Cuando la IA ejecuta sudo, no puedes ver qué comando va a lanzar, y mucho menos aprobarlo;

  • Si cambias de cliente de IA (Codex, OpenCode, ZCode...), todo el flujo de autorización hay que repetirlo desde cero.

La respuesta de HostConsole: las claves nunca salen de tu ordenador.

Tú conectas manualmente por SSH en HostConsole (contraseña / clave privada, guardadas con cifrado a nivel de sistema) y luego entregas la "sesión autorizada" a la IA a través del puente MCP local. La IA solo ve el alias de la sesión (por ejemplo, «NAS de casa»), puede operar el terminal y puede ser pausada o desconectada por ti en cualquier momento — pero nunca obtiene la dirección, el puerto, el nombre de usuario ni la clave privada.

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

Related MCP server: SSH MCP Server

Casos de uso

  • 🏠 NAS doméstico / servidor doméstico: que la IA te ayude a consultar el estado SMART, limpiar Docker o resolver alertas de RAID, sin tener que entregarle privilegios de root

  • 🖥️ VPS personal / máquina de desarrollo: desplegar, revisar logs, modificar la configuración de nginx; la IA trabaja y tú apruebas

  • 🌐 Router / dispositivos de red: a veces necesitas que la IA ayude con diagnósticos, pero las credenciales del dispositivo no pueden salir jamás

  • 🔁 Usuarios de múltiples clientes de IA: Codex, OpenCode, ZCode, WorkBuddy comparten el mismo conjunto de sesiones SSH autorizadas; cambiar de herramienta no requiere reautorizar

  • 🛡️ Personas que valoran la auditoría: cada comando sudo pasa por una ventana de aprobación que aparece ante ti, con el texto del comando perfectamente claro

Capturas de pantalla

Pantalla principal (Centro de integración de Agent + modo de permisos)

Asistente de integración de Agent

Centro de integración de Agent (desplegado)

Diseño responsive en pantalla estrecha

Características principales

  • 🔐 Aislamiento de credenciales: la dirección SSH, el puerto y el nombre de usuario solo existen en la configuración local; la contraseña y la clave privada se cifran con safeStorage de Electron (protección de credenciales de Windows) y se guardan en una caja fuerte independiente. A través de MCP, la IA solo puede obtener el alias de la sesión y su estado de autorización; todo lo demás es invisible — esto está garantizado por aserciones de pruebas específicas.

  • 🚦 Dos modos de permisos: relativamente seguro (la IA solo puede ejecutar siete categorías fijas de comprobaciones de solo lectura: identidad / sistema / almacenamiento / procesos / contenedores / servicios / logs) y completamente abierto (permisos completos de terminal de la cuenta SSH actual), conmutables con un clic en cualquier momento.

  • 💳 Flujo de aprobación de sudo: cuando la IA necesita elevar privilegios, llama a exec_sudo por separado; HostConsole muestra automáticamente una ventana emergente con el texto original del comando, y solo se ejecuta después de que tú lo apruebes. Ventana opcional de 30 minutos sin preguntar (por defecto, ajustable de 0 a 240 minutos); la contraseña de sudo se envía directamente al host remoto desde la caja fuerte local a través de la entrada estándar de SSH — no entra en el texto del comando, no entra en el registro del terminal, no entra en el contexto de la IA.

  • 🟢 Centro de integración de Agent: todas las IAs integradas se muestran en tiempo real con luces de estado (en línea / fuera de línea / controlando), y cada Agent tiene un interruptor de conexión independiente — al apagarlo se libera inmediatamente su control SSH y su autorización sudo, sin afectar a otros Agents ni desconectar el SSH.

  • 🧙 Asistente de integración con un clic: detecta y escribe automáticamente en seis formatos de configuración MCP: Codex TOML, OpenCode JSONC, ZCode, WorkBuddy y JSON/JSONC genéricos; permite previsualizar antes de escribir y genera automáticamente copias de seguridad con marca de tiempo.

  • ✍️ Contrato de escritura único: solo un Agent puede escribir en el terminal a la vez; los demás Agents ven el estado de ocupado pero no pueden insertar comandos; solo cuando tú dices explícitamente "tomar el control / forzar la toma de control" se transfiere.

  • 🫸 Interrupción inmediata: «Pausar IA» bloquea las operaciones al instante pero mantiene la conexión SSH; «Desconectar» revoca simultáneamente la autorización, el contrato y la autorización sudo.

  • 🖥️ Comandos manuales locales como respaldo: si la IA se niega a ejecutar o necesita entrada interactiva, la interfaz incluye un campo de entrada de comandos para que escribas tú mismo.

  • 🇨🇳 Interfaz completamente en chino: diseñada para usuarios chinos; desde los modos de permisos hasta los mensajes de error, no hay ni un término en inglés que necesites traducir.

  • 29 pruebas de seguridad: el aislamiento de credenciales, la exclusividad del contrato, el ciclo de vida de sudo, el enmascaramiento de configuración y otras afirmaciones de seguridad clave están respaldadas por pruebas automatizadas (npm test).

Inicio rápido

Requisitos del entorno

  • Windows 10/11

  • Node.js 20+ (incluye npm)

Inicio

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

Al cerrar la ventana de la aplicación, esta permanece en la bandeja del sistema; las sesiones SSH no se interrumpen por ello.

Tres pasos para empezar

  1. Conectar: haz clic en «Nueva conexión» y elige contraseña SSH / pegar clave privada / seleccionar archivo de clave; en la primera conexión verifica y fija la huella digital SHA-256 del host (TOFU).

  2. Autorizar: tras conectar, selecciona «relativamente seguro» o «completamente abierto» en el panel derecho.

  3. Invoca a la IA: dile a la IA que ya has integrado en HostConsole —

    En este equipo hay una conexión SSH a «NAS de casa», por favor revisa el estado del disco y de los contenedores Docker.

    La IA descubrirá automáticamente la sesión autorizada a través de MCP, obtendrá el control y empezará a trabajar.

Integra tu IA

HostConsole ofrece el servicio MCP a través de un canal con nombre local (\\.\pipe\host-console-mcp), sin escuchar en ningún puerto TCP; los Agents en la nube no pueden alcanzarlo.

La forma más sencilla es hacer clic en el botón «Integrar Agent» dentro de HostConsole y usar el asistente integrado para escribir la configuración automáticamente (con copia de seguridad automática y previsualización). Lo siguiente es una referencia para configuración manual:

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 en ~/.zcode/cli/config.json), WorkBuddy (mcpServers en ~/.codebuddy/.mcp.json) y cualquier JSON/JSONC genérico se pueden integrar con la misma estructura, o usar directamente el asistente integrado.

Tras escribir la configuración, debes cerrar y reiniciar por completo el cliente de IA correspondiente (los clientes MCP solo cargan la configuración al iniciar). Tras una integración exitosa, aparecerá una luz de estado verde en el «Centro de integración de Agent» de HostConsole, y el alias y el modo de permisos de la sesión autorizada se sincronizarán con la IA.

Modelo de seguridad

Qué puede ver la IA y qué no

Visible para la IA

Invisible para la IA

Sesión

Alias (p. ej., «NAS de casa»), estado de conexión, modo de permisos

Dirección del host, puerto, nombre de usuario

Credenciales

——

Contraseña SSH, clave privada, contraseña sudo (todo cifrado en la caja fuerte local)

Operaciones

Relativamente seguro: 7 categorías fijas de solo lecturaCompletamente abierto: cualquier comando + aprobación de sudo

Los comandos que intenten eludir la aprobación de sudo se rechazan directamente

Terminal

Salida reciente (texto legible)

Tus entradas manuales no se muestran

Múltiples capas de defensa

  1. Aislamiento a nivel de canal: MCP solo se vincula al canal con nombre local; no sale a la red, no abre puertos; nadie fuera de este mismo ordenador puede conectarse.

  2. Contrato de escritura único: entre Agents concurrentes, solo uno puede operar el terminal; la toma de control requiere que el usuario lo indique explícitamente.

  3. Confirmación de doble factor: en escenarios con múltiples sesiones, la IA debe proporcionar tanto el ID de sesión como el alias exacto para obtener el control; si no coinciden, se rechaza.

  4. Ciclo de vida de sudo: la autorización temporal solo está vinculada a la sesión actual y al Agent que controla actualmente; pausar / desconectar / tomar el control / reducir permisos / expirar la invalida inmediatamente, y también se puede terminar manualmente antes en cualquier momento.

  5. Credenciales irreversibles: para cambiar las credenciales, primero hay que desconectar el SSH; las credenciales antiguas nunca se muestran de nuevo, y las nuevas se sobrescriben cifradas.

Límites conocidos

  • Un proceso local malicioso que se ejecute bajo el mismo usuario de Windows que HostConsole podría teóricamente conectarse al canal con nombre — no uses el modo «completamente abierto» en entornos locales no confiables.

  • Actualmente es un MVP; aún no se ofrecen paquetes de instalación firmados ni actualización automática.

Resumen de herramientas MCP

Los 9 herramientas disponibles en el lado de la IA:

Herramienta

Propósito

Requisito de permisos

get_bridge_status

Ver los clientes de IA integrados y las sesiones autorizadas (solo alias y estado)

Cualquiera

list_authorized_sessions

Descubrir sesiones SSH autorizadas

Cualquiera

get_session_status

Ver estado de conexión, modo de autorización, estado de pausa, controlador actual

Cualquiera

acquire_control

Obtener el contrato de escritura de un solo Agent (con múltiples sesiones requiere doble confirmación de ID + alias)

Cualquiera

release_control

Liberar el contrato (sin desconectar SSH, sin revocar autorización)

Cualquiera

safe_inspect

7 categorías fijas de diagnóstico de solo lectura (identidad / sistema / almacenamiento / procesos / contenedores / servicios / logs)

Relativamente seguro

exec_terminal

Ejecutar cualquier comando de Shell (incluye detección de sudo; si se mezcla sudo, se rechaza)

Completamente abierto

exec_sudo

Comando con privilegios elevados, se ejecuta tras la aprobación en la ventana de aprobación de HostConsole

Completamente abierto + aprobación

read_terminal

Leer la salida reciente del terminal interactivo

Completamente abierto

Cómo funciona

主机台 (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

P: ¿Cómo sabe la IA que debe llamar a HostConsole? Tras la integración MCP, HostConsole sincroniza activamente con la IA el alias y el modo de permisos de las sesiones autorizadas en las instrucciones de inicialización. Solo tienes que dar la tarea como siempre: "En este equipo hay una conexión SSH al NAS de casa, por favor...".

P: ¿Puedo cambiar de cliente de IA y seguir usándolo? Sí. La autorización está vinculada a la sesión SSH, no al Agent. Cualquier IA local que haya integrado el MCP de HostConsole puede descubrir y (cuando el contrato esté libre) tomar el control de la misma sesión.

P: ¿Qué pasa si hay varias conexiones SSH simultáneas? La IA debe proporcionar tanto el ID de sesión como el alias exacto como doble confirmación, para evitar operar sobre el host equivocado.

P: ¿Puede la IA ver la contraseña de sudo? No. La contraseña se descifra desde la caja fuerte local y se envía directamente al sudo remoto a través de la entrada estándar de SSH; nunca pasa por la IA, no entra en el texto del comando ni en el registro del terminal (hay aserciones de pruebas específicas).

P: ¿Se pierden las credenciales si hay un corte de luz / apagado? No. El archivo de la caja fuerte se persiste en el directorio de datos de usuario de Windows, cifrado con la capacidad de protección de credenciales del sistema; pero no copies el archivo de la caja fuerte a una máquina no confiable.

P: ¿Se admite Linux / macOS? La interfaz y la lógica no asumen ninguna plataforma, pero actualmente se desarrolla y verifica en Windows; safeStorage en otras plataformas depende de sus respectivos llaveros del sistema. Agradecemos comentarios de pruebas.

Desarrollo

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

Para participar en el desarrollo, lee AGENTS.md para conocer las convenciones de decisiones de producto del proyecto.

Licencia

MIT © 2026 host-console contributors

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