# 自有中心与本机连接器

仅当安装者已选择“接入已有中心”或“部署自己的中心”时执行本页。当前对话或下载页指令已给出选择时直接沿用，不重复询问。前者先确认中心 URL 和目标客户端；后者先确认目标机器、域名、服务范围，再部署，不默认占用当前电脑。独立使用不需要本页。

首次建立中心按 [CENTER_SETUP.md](CENTER_SETUP.md) 的完整步骤；接入成功后制作自己的免输入包见 [PRIVATE_BUNDLES.md](PRIVATE_BUNDLES.md)。从创建到更新/撤销的总流程见 [WORKFLOWS.md](WORKFLOWS.md)。

## 中心运行合同

中心运行本包对应平台的 mcp-ssh-manager，以受限服务账号持有自己的权威目录及被授权的 SSH 凭据。Linux 示例启动参数：

```text
mcp-ssh-manager --http --bind 127.0.0.1:18081
```

通过服务管理器的私密环境文件提供：

| 变量 | 内容 |
| --- | --- |
| SSH_CONFIG_PATH | 自己的权威 ssh-config.toml 绝对路径 |
| SSH_ENV_PATH | 明确的受限环境配置路径，避免读取工作目录的无关 .env |
| MCP_HTTP_BEARER_TOKEN | 用安全随机数生成的 256 位接入 Key，不放命令参数、URL、日志或分发包 |
| MCP_CATALOG_EXPORT | true，启用私有目录 API |
| MCP_UPDATE_MANIFEST | 已验证客户端发布清单的绝对路径，可选；发布流程见 [UPDATES.md](UPDATES.md) |
| MCP_SSH_MANAGER_FILE_AGENT_BINARY | 包内 Linux helper 的绝对路径 |

将中心放在自己的 HTTPS 反向代理后面，保留 Authorization 并校验 Origin。`/mcp` 是受鉴权 MCP；`/v1/catalog`、`/v1/catalog/control`、`/v1/network/control` 是包含认证材料的私有接口，必须保持鉴权及 Cache-Control: no-store。`/healthz` 只作回环存活检查。

私有目录中的目标地址必须能从各接入电脑直连或经原配置跳板到达；不要把中心私有 localhost 路径或仅中心可用的内网地址误当成可移植目标。MCP Key 拥有该目录的所有者权限，不是多租户或分用户授权系统；不同信任范围应使用独立中心/目录。

## 新电脑接入自己的中心

本公开包未设置 ENDPOINT，也不含 API_KEY。对已安装程序调用 install，明确给自己的中心地址；Key 由原生隐藏提示读取：

Linux：
```bash
/absolute/path/mcp-ssh-manager install --endpoint https://your-center.example --clients codex
```

Windows PowerShell：
```powershell
& 'C:\absolute\path\mcp-ssh-manager.exe' install --endpoint https://your-center.example --clients codex
```

示例的 `--clients codex` 必须改为安装者选择的客户端；多个客户端用逗号分隔，可选值为 codex、snow、pi、claude-code、claude-desktop。只有安装者明确选择“接入所有已有受支持客户端”时才使用 `--clients auto`，不得扩大已经选择的客户端范围。

主程序必须仍有同目录的 sshmcp-file-agent，或安装布局的 libexec helper。已有同中心 profile 时会复用 Key。原生适配器备份后仅合并选择的条目，不安装这些客户端本身。自定义配置路径需先确认。

安装器连接中心、保存私密 connection.json、启动真实已安装 stdio 验收，并输出安装位置、配置备份、central/shared_pool/memory_only 验证结果。配置保存后仍需客户端重载。

## 运行检查

对安装器输出的程序和 profile 路径运行：

```text
mcp-ssh-manager doctor --client-config /absolute/private/connection.json
mcp-ssh-manager daemon-status --client-config /absolute/private/connection.json
mcp-ssh-manager daemon-stop --client-config /absolute/private/connection.json
```

最后一项在仍有客户端时拒绝停止。正常退出释放中心同步的 SSH 身份；API Key 按设计保留在用户私密配置中。远端文件数据由本机直接或经原跳板传输，中心负责目录同步。网页远程 MCP 接口与此本机连接器是不同执行位置，不能混用验收结论。
