SSH для агентов
MCP-сервер для SSH
Termalin — обычный SSH-клиент и терминал, но со встроенным MCP-сервером. Добавьте его в claude.ai или ChatGPT как коннектор или подключите Claude Code и любого агента, который говорит на Model Context Protocol, к своим хостам — он выполняет команды и читает и пишет файлы по SSH и SFTP. Ваши ключи никогда не покидают ключ-агент Termalin, а каждое действие отображается в реальном времени, записывается и попадает в журнал аудита.
Облачный сервер опубликован в официальном MCP Registry как in.termal/termalin-web.
Что он делает
MCP — открытый стандарт для подключения ИИ-агентов к инструментам. Большинство MCP-серверов оборачивают какой-нибудь API; MCP-сервер Termalin оборачивает ваши серверы — так агент действительно может управлять инфраструктурой: смотреть хвост лога, перезапускать сервис, проверять диск, править конфиг, деплоить. Он аутентифицируется через ключ-агент Termalin, поэтому приватный ключ никогда не передаётся ни агенту, ни модели.
Инструменты
Облачный эндпоинт предоставляет 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 | Запрос к базе данных на хосте — без пароля: запускает родной клиент СУБД через туннель без ключа, полагаясь на локальное доверие (peer-аутентификация Postgres, аутентификация MySQL через сокет, 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 из каталога приложений (найдите Termalin в разделе Apps) или Settings → Connectors → тот же URL
- Claude Code:
claude mcp add --transport http termalin https://termal.in/mcp, затем выполните/mcpи войдите. Другие клиенты, которые поддерживают удалённые MCP-серверы со входом (Codex, Cursor, VS Code), принимают тот же URL.
Чат открывает страницу входа Termalin; вы один раз подтверждаете доступ, и он может показывать список серверов, выполнять команды, читать и писать файлы и проверять мониторинг и оповещения — «проверь диск на prod», «покажи хвост лога nginx», «исправь этот конфиг» прямо из разговора. Доступ выдаётся через OAuth — он ограничен вашими собственными серверами, подключёнными через Connector, попадает в журнал аудита и отзывается в любой момент. Каждое подключённое приложение получает собственную политику команд — полный доступ, список разрешённых команд или только чтение — она задаётся в карточке «AI-приложения» вашего аккаунта.
Подробные инструкции: коннектор для ChatGPT и коннектор для claude.ai.
Условия, которые новички часто упускают: для облачного сервера нужен аккаунт на Pro или пробный период на 14 дней; чат видит только серверы, подключённые через Connector — войдите на termal.in/account, нажмите «Добавить Connector», скопируйте однострочную команду установки и выполните её на сервере (хост, который есть только в десктоп-приложении, останется недоступен). А в самом разговоре включите Termalin через меню инструментов в поле ввода — добавить коннектор в настройках не всегда достаточно.
2 · Локальный сервер (работает на вашей машине)
Укажите MCP-клиенту вашего агента встроенный бинарник termalin-mcp. Для Claude Code:
claude mcp add termalin -- <path>/termalin-mcp
Или в конфигурации MCP-клиента:
{
"mcpServers": {
"termalin": { "command": "<path>/termalin-mcp" }
}
} Сервер работает с хостами, которые вы выбрали в Настройки → «Доступ агента (MCP)» (они сохраняются только с агентской аутентификацией — никаких паролей на диске). У каждого хоста к тому же есть свой уровень доступа агента — полный, список разрешённых команд или запрет, — он задаётся в настройках самого хоста.
3 · Облачный эндпоинт с API-ключом (CI, скрипты, другие агенты)
Создайте API-ключ в веб-кабинете и укажите любому агенту HTTP-эндпоинт MCP:
{
"mcpServers": {
"termalin": {
"url": "https://termal.in/api/v1/mcp",
"headers": { "Authorization": "Bearer tk_live_…" }
}
}
} Он выполняет команды и передаёт файлы на ваших серверах с туннелем — тех, где запущен агент Connector, установленный одной командой, — даже когда на вашей машине ничего не открыто. Аутентификация идёт по краткосрочному сертификату, поэтому ключ никому не выдаётся. API-ключи можно ограничить конкретными серверами, назначить им политику команд — полный доступ, список разрешённых команд или только чтение, — задать срок действия (30 / 90 / 365 дней) и отозвать в любой момент.
Инструкции по настройке
Пошагово для каждого клиента:
- Claude Code — одна строка
claude mcp add. - ChatGPT и claude.ai — чат-коннектор с OAuth.
- Cursor — одна запись в
mcp.json. - Codex — одна запись в
config.toml. - Gemini CLI (на английском) — CLI от Google по SSH.
Контроль остаётся у вас
- Доступ агентов выключен по умолчанию; разрешение агенту печатать в ваших живых сессиях — ещё один, отдельный переключатель.
- Доступ настраивается точечно: для каждого хоста в десктоп-приложении (полный / список разрешённых / запрет) и для каждого API-ключа и каждого подключённого ИИ-приложения на облачном эндпоинте (полный / список разрешённых / только чтение) — так агент может только читать на одном сервере и запускать только
gitна другом. - У агента никогда нет вашего ключа — он аутентифицируется через ключ-агент Termalin или краткосрочный сертификат.
- Каждая команда агента помечается в записи сессии, видна в реальном времени в сетке наблюдения и попадает в журнал аудита.
- Облачные запуски ограничены по частоте и по времени для каждого API-ключа.
Вопросы и ответы
Как подключить мои серверы к claude.ai или ChatGPT?
В claude.ai: откройте страницу Termalin в каталоге коннекторов и нажмите Connect (или добавьте по URL в Settings → Connectors → Add custom connector → https://termal.in/mcp). Откроется страница входа Termalin; подтвердите доступ — и Claude сможет показывать список ваших серверов, выполнять команды и работать с файлами прямо в чате. В ChatGPT добавьте Termalin из каталога приложений (найдите Termalin в разделе Apps) или добавьте тот же URL в Settings → Connectors. API-ключ вставлять не нужно: доступ выдаётся через OAuth, ограничен вашими собственными серверами, подключёнными через Connector, и его можно отозвать в любой момент.
Что такое MCP-сервер для SSH?
MCP-сервер для SSH открывает SSH и SFTP как инструменты, которые ИИ-агент может вызывать по протоколу Model Context Protocol, — так агент может выполнять команды и читать и писать файлы на ваших серверах. Они бывают двух видов: отдельные серверы (например, ssh-mcp, mcp-ssh), которые хранят ключ там, где запущены, и SSH-клиенты со встроенным сервером (Conduit, XPipe, Termalin). В Termalin такой сервер встроен прямо в SSH-клиент: вы выбираете, к каким хостам у агента есть доступ, а аутентификацию выполняет Termalin, поэтому агент никогда не имеет дела с приватным ключом.
Как дать ИИ-агенту доступ к моим серверам по SSH?
Два способа. Облачный: подключите свои серверы через Connector, затем добавьте https://termal.in/mcp в своего агента и войдите один раз — в 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 — Claude Code, Cursor, Codex или ваш собственный — увидит эти хосты и сможет работать с ними по SSH и SFTP.
Может ли ИИ-агент работать по SSH, не видя моего приватного ключа?
Да. Termalin выступает хранителем ключей: вы один раз разблокируете ключи, и Termalin подписывает от имени агента, поэтому приватный ключ никогда не передаётся ни агенту, ни модели. Облачный эндпоинт идёт ещё дальше: каждый запуск аутентифицируется краткосрочным SSH-сертификатом, а не ключом.
У каких SSH-клиентов есть встроенный MCP-сервер?
На октябрь 2026 года: Conduit (SSH, RDP, VNC и веб, около 60 локальных инструментов, Apache-2.0, только через локальный сокет); XPipe (локальный HTTP-MCP-сервер, выключен по умолчанию, только чтение, пока вы не разрешите изменения); VibeShell (около 28 инструментов, MIT, локально); и Termalin (22 локальных инструмента плюс облачный эндпоинт на 16 инструментов по адресу https://termal.in/mcp со входом через OAuth для claude.ai, ChatGPT, Claude Code, Codex и Cursor — серверы доступны без ключа через Connector, с правилами команд для каждого подключения и журналом аудита, на Windows, macOS, Linux, iOS и в браузере). Conduit подойдёт, если нужно одно приложение с открытым кодом для SSH/RDP/VNC; XPipe — если вы живёте в Docker и ВМ; Termalin — если агент должен работать ещё и из CI или из чата, когда десктоп не запущен. См. полный обзор решений (на английском).
Работает ли MCP-сервер без запущенного десктоп-приложения?
Есть оба режима. Локальный сервер работает вместе с десктоп-приложением — для хостов, которые вы из него экспортируете. Облачному серверу — https://termal.in/mcp с разовым входом или https://termal.in/api/v1/mcp с API-ключом — десктоп не нужен вовсе: он обращается к серверам, подключённым через Termalin Connector без ключа, и аутентифицируется краткосрочными сертификатами, поэтому работают и агенты в CI или облачных песочницах. Он опубликован в официальном MCP Registry как in.termal/termalin-web.