为 AI 代理而生的 SSH
SSH 的 MCP 服务器
Termalin 是一款普通的 SSH / 终端客户端,但内置了 MCP 服务器。把它作为自定义连接器添加到 claude.ai 或 ChatGPT,或者把 Claude Code 或任何支持 Model Context Protocol 的 AI 代理指向你的主机,它就能通过 SSH 和 SFTP 执行命令、读写文件。你的密钥从不离开密钥代理,每一步操作都会实时镜像、全程录制,并写入审计日志。
托管服务器已收录在官方 MCP Registry 中,名称为 in.termal/termalin-web。
它能做什么
MCP 是连接 AI 代理与工具的开放标准。大多数 MCP 服务器封装的是某个 API;Termalin 封装的是你的服务器,所以 AI 代理可以真正操作基础设施:跟踪日志、重启服务、检查磁盘、修改配置、部署上线。认证通过 Termalin 的 SSH 密钥代理完成,私钥绝不会交给代理或模型。
工具
托管端点提供 16 个工具;本地 termalin-mcp 服务器提供 22 个:下面的共用核心,再加上会话、隧道和实时终端工具;标注“托管端点”的行只在托管端点提供。带参数的完整列表见 MCP 工具参考(英文)。共用核心如下:
| 工具 | 作用 |
|---|---|
hosts_list | 列出代理可以访问的主机。 |
ssh_exec | 在主机上执行一条命令,返回输出和退出码。 |
ssh_exec_many | 在多台主机上同时执行同一条命令(托管端点)。 |
job_start / status / stop / list | 在后台启动耗时的构建或迁移,之后回来查看日志和退出码,也可以停止它(托管端点)。任务在代理这一轮结束、连接断开后仍会继续运行。 |
server_metrics | 所有服务器最新的 CPU、内存、磁盘、负载和网络数据,或某一台服务器的详情及最近几小时的平均值和峰值;数据来自 Termalin 的监控,不会在服务器上执行任何命令(仅托管端点)。 |
alerts_list | 监控当前发现的问题(磁盘快满、内存或负载居高不下、服务失败、证书即将过期、服务器离线),以及最近七天内已恢复的问题(仅托管端点)。 |
sftp_list | 通过 SFTP 列出目录。 |
sftp_read | 通过 SFTP 读取文本文件(有大小上限,仅限文本)。托管端点专用;本地服务器使用 sftp_get。 |
sftp_write | 通过 SFTP 写入文本文件。托管端点专用;本地服务器使用 sftp_put。 |
generate_password | 按需生成强密码,长度和字符集由你控制。 |
data_query | 查询主机上的数据库,无需密码:经由无密钥隧道,利用本地信任(Postgres peer 认证、MySQL socket 认证、redis-cli、mongosh、sqlite3)运行数据库引擎自带的客户端。默认只读。 |
data_tables | 列出主机上数据库的表 / 集合 / 键,同样走无需密码的路径。 |
data_schema | 描述单张表的列。 |
本地服务器在此基础上还提供:
| 工具 | 作用 |
|---|---|
session_open / exec / close / list | 打开持久的 SSH 会话,在其中执行命令并管理会话。 |
sftp_get / sftp_put | 下载和上传文件。 |
tunnel_open / close / list | 在主机上打开端口转发并管理它们:访问主机后面的服务、暴露本地服务,或经由主机转发流量。 |
terminal_open / run / run_many / sessions / hosts | 操作正在运行的桌面应用:打开实时终端标签页,或接入你已经打开的会话,和你并肩运行(需经你同意)。 |
data_list / tables / schema / query | 浏览并查询你保存的数据库:列出数据库、表和列,执行只读查询。默认关闭,按连接设置,需经你同意。 |
三种连接方式
1 · claude.ai / ChatGPT:在你常用的聊天里
无需安装,无需粘贴密钥。把 Termalin 添加为自定义连接器,用对话管理你的服务器:
- claude.ai:打开 Termalin 连接器页面 → Connect(或 Settings → Connectors → Add custom connector →
https://termal.in/mcp) - ChatGPT:从应用目录添加 Termalin(在 Apps 中搜索 Termalin),或 Settings → Connectors → 同一个 URL
- Claude Code:
claude mcp add --transport http termalin https://termal.in/mcp,然后运行/mcp并登录。其他支持带登录的远程 MCP 服务器的客户端(Codex、Cursor、VS Code)使用同一个 URL。
聊天会打开 Termalin 的登录页面;批准一次后,它就能列出你的服务器、执行命令、读写文件,并查看监控和告警。“检查一下生产环境的磁盘”“跟踪 nginx 日志”“把那个配置改好”,直接在对话里说就行。访问权限通过 OAuth 授予,仅限你自己已接入的服务器,全程审计,随时可撤销。每个已连接的应用都有自己的命令策略(完全访问、命令允许列表或只读),在你账户的“AI 应用”卡片中设置。
完整教程:ChatGPT 连接器和 claude.ai 连接器。
新用户常漏掉的前提:托管服务器需要一个 Pro 或 14 天试用的账户;聊天只能访问已接入的服务器。请在 termal.in/account 登录,点击“添加 Connector”,复制一行安装命令并在服务器上运行(只存在于桌面应用里的主机无法访问)。另外,在对话中还要通过输入框的工具菜单启用 Termalin,只在设置里添加连接器并不总是够用。
2 · 本地服务器(在你的电脑上运行)
把 AI 代理的 MCP 客户端指向随附的 termalin-mcp 二进制文件。以 Claude Code 为例:
claude mcp add termalin -- <path>/termalin-mcp
或者写进 MCP 客户端配置:
{
"mcpServers": {
"termalin": { "command": "<path>/termalin-mcp" }
}
} 它能访问你在设置 →“代理访问 (MCP)”中选定的主机(只写入代理专用的认证信息,磁盘上不存密码)。每台主机还有自己的代理访问级别:完全访问、命令允许列表或禁止,直接在主机上设置。
3 · 使用 API 密钥的托管端点(CI、脚本、其他 AI 代理)
在网页控制台中创建 API 密钥,把任意 AI 代理指向 HTTP MCP 端点:
{
"mcpServers": {
"termalin": {
"url": "https://termal.in/api/v1/mcp",
"headers": { "Authorization": "Bearer tk_live_…" }
}
}
} 它可以在你接入隧道的服务器(运行一行命令安装的代理的那些服务器)上执行命令、传输文件,即使你的电脑上什么都没打开。它用短期证书认证,不会交出任何密钥。API 密钥可以限定到特定服务器,设置命令策略(完全、允许列表或只读),设定有效期(30 / 90 / 365 天),并随时撤销。
配置指南
每个客户端的分步教程:
- Claude Code — 一行
claude mcp add。 - ChatGPT 和 claude.ai— OAuth 聊天连接器。
- Cursor — 在
mcp.json中加一条配置。 - Codex — 在
config.toml中加一条配置。 - Gemini CLI(英文)— 通过 SSH 使用 Google 的 CLI。
一切尽在你的掌握
- 代理访问默认关闭;允许代理在你的实时会话中输入,是另一个独立开关。
- 访问权限可细分:桌面应用按主机设置(完全访问 / 允许列表 / 禁止),托管端点按 API 密钥和按已连接的 AI 应用设置(完全 / 允许列表 / 只读)。这样代理在一台服务器上可以是只读,在另一台上只能运行
git。 - 代理始终拿不到你的密钥:它通过 Termalin 的 SSH 密钥代理或短期证书认证。
- AI 代理的每条命令都会在会话录制中标记出来,可在监控网格中实时查看,并写入审计日志。
- 托管运行按 API 密钥限速,并有时长上限。
常见问题
如何把我的服务器连接到 claude.ai 或 ChatGPT?
在 claude.ai 中:打开 Termalin 在连接器目录中的页面,点击 Connect(或通过 URL 添加:Settings → Connectors → Add custom connector → https://termal.in/mcp)。Termalin 的登录页面会打开,批准之后,Claude 就能直接在聊天中列出你的服务器、执行命令和管理文件。在 ChatGPT 中,从应用目录添加 Termalin(在 Apps 中搜索 Termalin),或在 Settings → Connectors 下添加同一个 URL。无需粘贴 API 密钥:访问权限通过 OAuth 授予,仅限你自己已接入的服务器,随时可以撤销。
什么是 SSH 的 MCP 服务器?
SSH 的 MCP 服务器把 SSH 和 SFTP 作为工具开放出来,AI 代理可以通过 Model Context Protocol 调用它们,从而在你的服务器上执行命令、读写文件。它们有两种形态:独立服务器(例如 ssh-mcp、mcp-ssh),把密钥保存在它们运行的地方;以及内置了 MCP 服务器的 SSH 客户端(Conduit、XPipe、Termalin)。Termalin 把它内置在 SSH 客户端里:代理能访问哪些主机由你决定,认证由 Termalin 完成,所以代理永远接触不到私钥。
如何让 AI 代理通过 SSH 访问我的服务器?
有两种方式。托管:用 Connector 接入你的服务器,然后把 https://termal.in/mcp 添加到你的 AI 代理并登录一次——在 Claude Code 中就是 claude mcp add --transport http termalin https://termal.in/mcp,再运行 /mcp 登录;脚本和 CI 则用 https://termal.in/api/v1/mcp 加 API 密钥。无需运行桌面应用。本地:安装 Termalin,在设置 →“代理访问 (MCP)”中启用你想开放的主机,然后用 claude mcp add termalin -- <path>/termalin-mcp 注册随附的服务器。无论哪种方式,任何支持 MCP 的 AI 代理(Claude Code、Cursor、Codex 或你自己写的)都能列出这些主机,并通过 SSH 和 SFTP 操作它们。
AI 代理能在看不到我私钥的情况下使用 SSH 吗?
能。Termalin 充当密钥托管方(替你保管密钥、代为签名的中间层):你只需解锁一次密钥,之后由它代表代理签名,私钥从不交给代理,也不会传给模型。托管端点更进一步,每次运行都用短期 SSH 证书认证,而不是密钥。
哪些 SSH 客户端内置了 MCP 服务器?
截至 2026 年 10 月:Conduit(SSH、RDP、VNC 和网页,约 60 个本地工具,Apache-2.0,仅限本地 socket);XPipe(一个本地 HTTP MCP 服务器,默认关闭,在你启用修改之前只读);VibeShell(约 28 个工具,MIT,本地);以及 Termalin(22 个本地工具,外加一个位于 https://termal.in/mcp 的 16 工具托管端点,支持 claude.ai、ChatGPT、Claude Code、Codex 和 Cursor 通过 OAuth 登录——通过 Connector 以无密钥方式接入服务器,受每个连接的命令规则和审计日志约束,支持 Windows、macOS、Linux、iOS 和浏览器)。如果你想要一款横跨 SSH/RDP/VNC 的开源应用,Conduit 合适;如果你整天泡在 Docker 和虚拟机里,选 XPipe;如果代理还必须在 CI 或没有运行桌面应用的聊天里工作,那就选 Termalin。参见完整的横向对比(英文)。
不运行桌面应用,MCP 服务器能用吗?
两种模式都有。本地服务器与桌面应用一起运行,面向你从应用中导出的主机。托管服务器——登录一次使用 https://termal.in/mcp,用 API 密钥则使用 https://termal.in/api/v1/mcp——完全不需要桌面应用:它通过短期证书认证,访问用无密钥的 Termalin Connector 接入的服务器,所以在 CI 或云端沙箱中运行的 AI 代理也能用。它已收录在官方 MCP Registry 中,名称为 in.termal/termalin-web。