host_console
ホストコンソール HostConsole
SSH の操作は AI に任せるが、鍵は自分の手元に残す。
English · 简体中文
主な機能 · スクリーンショット · クイックスタート · AI の接続 · セキュリティモデル · 動作原理 · FAQ
なぜホストコンソールが必要か
あなたもこんなジレンマに陥ったことがあるだろう。NAS やサーバー、ルーターの管理を AI に任せたいが、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 / ホームサーバー:SMART 状態の確認、Docker のクリーンアップ、RAID アラートの修復を AI に任せたいが、root 権限は渡したくない
🖥️ 個人 VPS / 開発機:デプロイ、ログ確認、nginx 設定変更。AI が作業し、あなたが承認する
🌐 ルーター / ネットワーク機器:AI に診断を手伝ってもらいたいが、デバイスの認証情報は絶対に外部に漏らせない
🔁 複数の AI クライアント利用者:Codex、OpenCode、ZCode、WorkBuddy が同じ認証済み SSH セッションを共有。ツールを変えても再認証不要
🛡️ 監査を重視する人:sudo コマンドはすべてあなたの目の前の承認ダイアログを通過し、コマンド原文が明確に表示される
スクリーンショット
メイン画面(Agent 接続センター + 権限モード) | Agent 接続ウィザード |
Agent 接続センター(展開) | 狭い画面対応 |
主な機能
🔐 認証情報の分離:SSH アドレス、ポート、ユーザー名はローカル設定のみに保存。パスワードと秘密鍵は Electron
safeStorage(Windows システム認証情報保護)で暗号化され、独立した金庫に保存。AI は MCP 経由でセッションのエイリアスと認証状態のみ取得でき、それ以外は一切見えない——これは専用のテストで保証されている。🚦 二重権限モード:相対的安全(AI は ID / システム / ストレージ / プロセス / コンテナ / サービス / ログの 7 種類の固定読み取り専用チェックのみ実行可能)と完全開放(現在の SSH アカウントの完全なターミナル権限)。いつでもワンクリックで切り替え可能。
💳 sudo 承認フロー:AI が権限昇格を必要とする場合、専用の
exec_sudoを呼び出し、ホストコンソールが自動的にコマンド原文を表示するダイアログを表示し、あなたが承認した後にのみ実行。オプションで 30 分(デフォルト、0〜240 分で調整可能)の再確認不要ウィンドウを設定可能。sudo パスワードはローカル金庫から SSH 標準入力経由で直接リモートに渡され、コマンドテキスト、ターミナル記録、AI コンテキストには一切入らない。🟢 Agent 接続センター:接続されたすべての AI がステータスランプでリアルタイム表示(オンライン / オフライン / 制御中)。各 Agent に独立した接続スイッチがあり、オフにすると即座にその SSH 制御権と sudo 認証を解放。他の Agent には影響せず、SSH も切断されない。
🧙 ワンクリック接続ウィザード:Codex TOML、OpenCode JSONC、ZCode、WorkBuddy、および汎用 JSON/JSONC の 6 種類の MCP 設定形式を自動認識して書き込み。書き込み前にプレビュー可能、タイムスタンプ付きのバックアップを自動生成。
✍️ 単一書き込みリース:同時に 1 つの Agent のみがターミナルに書き込める。他の Agent は占有状態を確認できるが、コマンドを挿入できない。「引き継ぎ / 強制引き継ぎ」を明示した場合のみ移行される。
🫸 即時遮断:「AI を一時停止」で操作を即座にブロックしつつ SSH 接続は維持。「接続を切断」で認証、リース、sudo 認証を同時に取り消す。
🖥️ ローカル手動コマンドのフォールバック:AI が実行を拒否したり、対話入力を必要とする場合、インターフェース内のコマンド入力ボックスで自分で入力できる。
🇨🇳 全中国語インターフェース:中国語ユーザー向けに設計。権限モードからエラーメッセージまで、翻訳を調べる必要のある英語用語は一切ない。
✅ 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 セッションは切断されない。
3 ステップで開始
接続:「新規接続」をクリックし、SSH パスワード / 秘密鍵の貼り付け / 鍵ファイルの選択。初回接続時にホストの SHA-256 フィンガープリントを確認して固定(TOFU)。
認証:接続後、右側で「相対的安全」または「完全開放」を選択。
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 = "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(~/.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 承認を回避するコマンドは直接拒否 |
ターミナル | 最近の出力(読み取り可能なテキスト) | あなたの手動入力はエコー表示されない |
多重防御
パイプレベルの分離:MCP はローカル名前付きパイプのみにバインドされ、外部ネットワークに出ず、ポートも開かない。同じコンピューターの外からは誰も接続できない。
単一書き込みリース:同時に 1 つの Agent のみがターミナルを操作でき、引き継ぎにはユーザーの明示が必要。
二要素確認:複数セッションのシナリオでは、AI はセッション ID と正確なエイリアスの両方を提供する必要があり、一致しない場合は拒否される。
sudo ライフサイクル:一時認証は現在のセッションと現在の制御 Agent にのみバインドされ、一時停止 / 切断 / 引き継ぎ / 権限降下 / 期限切れで即座に無効化。いつでも手動で早期終了も可能。
認証情報の不可逆性:認証情報を変更するには先に SSH を切断する必要がある。古い認証情報は決してエコー表示されず、新しい認証情報は暗号化して上書きされる。
既知の制限
ホストコンソールと同じ Windows ユーザーで実行されている悪意のあるローカルプロセスは、理論上は名前付きパイプに接続できる——信頼できないローカル環境では「完全開放」モードを使用しないこと。
現在は MVP であり、署名付きインストーラーと自動更新はまだ提供されていない。
MCP ツール一覧
AI 側から呼び出せる 9 つのツール:
ツール | 用途 | 権限要件 |
| 接続された AI クライアントと認証済みセッションを表示(エイリアスと状態のみ) | 任意 |
| 認証済み SSH セッションを発見 | 任意 |
| 接続、認証モード、一時停止状態、現在の制御者を表示 | 任意 |
| 単一 Agent の書き込みリースを取得(複数セッションでは ID + エイリアスの二重確認) | 任意 |
| リースを解放(SSH を切断せず、認証も取り消さない) | 任意 |
| 7 種類の固定読み取り専用診断(ID / システム / ストレージ / プロセス / コンテナ / サービス / ログ) | 相対安全 |
| 任意の Shell コマンドを実行(sudo 検出を含み、sudo が混入すると拒否) | 完全開放 |
| 権限昇格コマンド。ホストコンソールの承認ダイアログで承認後に実行 | 完全開放 + 承認 |
| 対話型ターミナルの最近の出力を読み取る | 完全開放 |
動作原理
主机台 (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
Q:AI はどうやってホストコンソールを呼び出すと知るのか? MCP に接続すると、ホストコンソールは初期化説明で認証済みセッションのエイリアスと権限モードを AI に能動的に同期する。通常どおりタスクを指示するだけ:「このマシンは家庭 NAS の SSH に接続されています。……」。
Q:AI クライアントを変えても使えるか? 使える。認証は SSH セッションにバインドされており、Agent にはバインドされていない。ホストコンソールの MCP に接続されたローカル AI はどれでも、同じセッションを発見し(リースが空いている場合)引き継ぐことができる。
Q:複数の SSH に同時に接続するとどうなるか? AI はセッション ID と正確なエイリアスの二重確認を提供しなければならず、誤ったホストを操作するのを防ぐ。
Q:sudo パスワードは AI に見られるのか? 見られない。パスワードはローカル金庫で復号された後、SSH 標準入力経由で直接リモートの sudo に送信される。AI を経由せず、コマンドテキストやターミナル記録にも入らない(専用テストで保証)。
Q:停電 / シャットダウンで認証情報は失われるか? 失われない。金庫ファイルは Windows ユーザーデータディレクトリに永続化され、システムの認証情報保護機能で暗号化される。ただし、金庫ファイルを信頼できないマシンにコピーしないこと。
Q:Linux / macOS はサポートされているか?
インターフェースとロジックにプラットフォームの前提はないが、現在は Windows で開発・検証されている。safeStorage は他のプラットフォームでは各システムのキーチェーンに依存する。テストフィードバック歓迎。
開発
npm run dev # 浏览器开发预览
npm run desktop # 构建并启动 Electron 桌面版
npm test # 29 项测试開発に参加する場合は AGENTS.md を読んで、プロジェクトの製品決定に関する規約を理解してください。
ライセンス
MIT © 2026 host-console contributors
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.-