Проблема безопасности в AI-инфраструктуре
Обычно ИИ-агенты, работающие с удалёнными серверами, либо получают полный root-доступ (что критически небезопасно), либо не имеют доступа вовсе. Проект ssh-mcp от разработчика overklassniy решает эту проблему, внедряя модель «Zero Trust» для AI-операций. Сервер работает через протокол MCP (Model Context Protocol) и поддерживает клиентов: Claude Desktop, Claude Code, Cursor, Devin, VS Code и Cline.
8 инструментов для управления инфраструктурой
ssh-mcp предоставляет строго типизированный набор инструментов, которые ИИ-агент может вызывать через stdin/stdout. Это позволяет автоматизировать рутинные DevOps-задачи, сохраняя контроль оператора.
| Инструмент | Описание |
|---|---|
| execute-command | Выполнение произвольной команды на удалённом сервере |
| upload / download | Передача файлов через SFTP |
| list-remote | Просмотр содержимого удалённой директории |
| dir-sync | Рекурсивная синхронизация директорий (локаль ↔ удалённо) |
| port-forward | Управление локальными и удалёнными портовыми форвардами |
| server-status | Сбор метрик: CPU, RAM, диск, GPU, статус сервисов |
| list-servers | Проверка доступности и статуса подключенных серверов |
Механизмы безопасности и ограничения
Главное отличие ssh-mcp — детальный контроль того, что именно может сделать агент. Безопасность обеспечивается не только шифрованием, но и логикой приложения:
- Whitelist/Blacklist команд: Каждое выполнение команды проверяется через regex-фильтры. Если whitelist пуст, выводится предупреждение, но команда разрешена. Это предотвращает выполнение вредоносных скриптов.
- Ограничение путей (Path Restrictions): Операции SFTP ограничиваются списком разрешённых директорий (
allowed_remote_pathsиallowed_local_paths), что исключает выход за пределы заданных каталогов (path traversal). - Секреты через Env: Пароли, passphrases и коды 2FA передаются исключительно через переменные окружения (
SSH_MCP_PASSWORD,SSH_MCP_PASSPHRASE), никогда не попадая в аргументы командной строки. - Hot-reload: При запуске с флагом
--configсервер отслеживает изменения в TOML-файле, позволяя добавлять или менять серверы без перезапуска процесса.
Установка и конфигурация
Проект написан на Go 1.26+ и поддерживает платформы Windows, macOS и Linux (amd64/arm64). Существует несколько способов интеграции:
- Локальный бинарник:
make buildи последующая регистрация черезssh-mcp install --client <client>. - Docker: Использование образа
ghcr.io/overklassniy/ssh-mcp:latest. - Go-run: Запуск через
go run github.com/overklassniy/ssh-mcp/cmd/ssh-mcp@latest(аналог npx, требует установленного Go). - MCPB Bundle: Установка через файл .mcpb из релизов.
Конфигурация хранится в TOML-формате, где можно задать таймауты (по умолчанию 30s для SSH, 5m для SFTP), лимит вывода (max_output_bytes = 10MB) и параметры keepalive. Проект распространяется под лицензией MIT.
Источник: Github ↗
