Gemini CLI от Google — способный агент в терминале, и, как и другие кодинг-агенты, он рано или поздно должен покинуть ваш ноутбук и коснуться настоящего сервера — перезапустить службу, посмотреть лог, запустить деплой на самой машине. Соблазнительный короткий путь — позволить ему запускать ssh напрямую: CLI и так выполняет команды оболочки, так что если ключ лежит разблокированным в ~/.ssh или в запущенном ssh-agent, то ssh prod сработает у него — хотели вы дать такой доступ или нет. Вот и вся проблема в одну строку — вы по умолчанию отдали полный доступ к серверу.
В Gemini CLI встроен путь почище: он говорит на MCP, том же протоколе, что используют Claude Code, Cursor и Codex (на английском). Termalin — это SSH-клиент со встроенным MCP-сервером, так что вы направляете Gemini на этот сервер, и он по-настоящему работает с вашими хостами — при этом агент никогда не держит ключ. Около двадцати минут, один хост.
Что понадобится
- Termalin — десктоп-приложение; тарифа Free достаточно. Его встроенный MCP-сервер — это то, с чем разговаривает Gemini.
- Gemini CLI на той же машине.
- Один хост, сохранённый в Termalin, — что-нибудь не самое ответственное для первого запуска.
Шаг 1 — включите доступ агента и задайте политику
Доступ агента выключен по умолчанию. В Termalin откройте Настройки → «Доступ агента (MCP)», включите его и отметьте хосты, до которых Gemini может дотягиваться. Всего, что вне этого списка, для агента не существует — новый хост — это решение, которое вы принимаете в приложении, а не то, к чему агент может подвести разговором.
Под капотом Termalin пишет для MCP-сервера список хостов с записями авторизации только для агента — ни пароли, ни ключи в этот файл не попадают — а аутентификация остаётся у хранителя ключей приложения: вы разблокируете один раз, и Termalin подписывает от имени агента. Нет файла ключа, который Gemini мог бы прочитать, значит нечему утекать, и чёрный ход через ~/.ssh выше закрывается вместе с этим.
Пока вы там, задайте для каждого хоста политику агента: полный доступ, список разрешённых команд или блокировка. Для всего, что вам дорого, начинайте со списка разрешённых — настройке по принципу наименьших привилегий посвящён отдельный короткий пост (на английском).
Шаг 2 — зарегистрируйте сервер в настройках Gemini
Gemini CLI читает MCP-серверы из объекта mcpServers в своём файле настроек — ~/.gemini/settings.json для всех ваших проектов или локальный для проекта .gemini/settings.json. Добавьте одну запись, указывающую на поставляемый бинарник termalin-mcp:
{
"mcpServers": {
"termalin": {
"command": "<path>/termalin-mcp"
}
}
}
Вот и вся интеграция. Перезапустите Gemini CLI (или перезагрузите его MCP-серверы), и инструменты появляются у агента: hosts_list, ssh_exec, постоянные сессии (session_open / session_exec), чтение и запись по SFTP и проброс портов. Выполните /mcp в Gemini, чтобы убедиться, что сервер подключён, и увидеть инструменты, которые он предоставляет. Полный список инструментов (на английском) документирует каждый.
Если вы вообще предпочитаете не возиться с MCP, есть вариант полегче: в Termalin есть вкладка локального терминала, так что можно просто набрать gemini и запустить CLI прямо внутри приложения рядом с вашими SSH-сессиями. Это даёт вам Gemini в том же окне — но именно настройка MCP выше позволяет Gemini действовать на ваших серверах через хранителя, и это та часть, которая держит ваши ключи вне его досягаемости.
Шаг 3 — дайте ему настоящее поручение
Пропустите демо. Поручите что-нибудь настоящее:
Деплой на staging-1 завершился, но проверка здоровья то и дело мигает. Выясни почему и исправь.
Gemini вызывает hosts_list, видит staging-1, открывает сессию и начинает тянуть за ниточки — статус службы, последние сто строк лога, разницу конфигурации с тем, что запущено. Он предлагает исправление, применяет его в рамках заданной вами политики и подтверждает, что проверка стала зелёной.
Комфортным, а не нервотрёпным это делает то, что ничего из этого не скрыто. Каждая сессия, которую открывает Gemini, появляется в Termalin как живая вкладка терминала, а сетка наблюдения (на английском) ставит все открытые сессии бок о бок, и плитки, управляемые агентом, подсвечиваются. Вы смотрите, как команды приземляются по мере выполнения, и можете вмешаться в любой момент.
Где проходят границы
Значения по умолчанию, которые стоит знать, прежде чем направлять его на что-то важное:
- Ваши ключи никогда не попадают в окружение Gemini. Хранитель подписывает; агент запрашивает. Отзыв доступа — это переключатель в Настройках, а не ротация ключей по всему парку.
- Его досягаемость — это список хостов, которые вы отметили на шаге 1, а политика команд каждого хоста ограничивает то, что он может там запускать. «Полный» на проде — это по-прежнему полная оболочка; задавайте его осознанно.
- Ввод в вашу сессию — это отдельно. По умолчанию Gemini открывает собственные сессии; присоединение к уже открытой вами — это отдельный переключатель согласия.
- Каждая команда зафиксирована. Записи захватывают только вывод — никогда нажатия клавиш — и каждая команда агента помечена как его (на английском) в журнале аудита, с устройством и IP, откуда она пришла.
Когда Gemini работает в облаке
Если Gemini работает там, где нет вашего десктопа — в CI-задаче, в облачной песочнице, — локальный бинарник недостижим, но облачный эндпоинт MCP Termalin — достижим. Создайте API-ключ в веб-кабинете, ограничьте его область нужными серверами, поставьте только чтение или список разрешённых, задайте срок действия и направьте агента на https://termal.in/api/v1/mcp. Он добирается до ваших серверов, подключённых через Connector, без ключа, аутентифицируя каждый запуск краткосрочным сертификатом — полный паттерн для CI/CD здесь (на английском).
Привычка, которая закрепляет результат
Относитесь к первой неделе как к онбордингу быстрого коллеги. Держите сетку наблюдения открытой, давайте Gemini поручения с чётким признаком завершённости и читайте, как он к нему приходит, прежде чем что-либо расширять. В этом размене весь смысл: Gemini получает реальную досягаемость до ваших серверов, а вы сохраняете единственное — ключи, — что нельзя забрать обратно, стоит им однажды утечь.
Termalin — кроссплатформенный SSH-клиент со встроенным MCP-сервером, хранителем ключей и политикой агента для каждого хоста — скачайте его, прочитайте справочник MCP или посмотрите, как он обращается с ключами.