Initial commit: forge-tools-ssh — MCP-сервер для администрирования по SSH

This commit is contained in:
Maksim Totmin
2026-10-01 10:13:48 +07:00
commit 1821fe7968
30 changed files with 5342 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
# Безопасность
`forge-tools-ssh` намеренно устроен так, чтобы AI-ассистент не мог выйти за
рамки, заданные оператором. Если вы нашли способ обойти эти рамки — сообщите,
пожалуйста, команде разработки, не открывая публичный issue.
## Модель угроз
- **Хосты.** При заданном `allowed_hosts` подключение к любому хосту вне списка
отклоняется. Отсутствие или порча конфига не открывают доступ.
- **Учётные данные.** Ассистент передаёт только имя профиля; хост, ключ и адрес
берутся из конфига. Произвольные ключи и пароли из модели не используются.
- **Команды.** Пользовательские значения экранируются перед попаданием в shell.
Инструмент `run` эмитит permission-паттерны для внешнего движка одобрения.
- **Файлы.** Запись проверяет синтаксис для известных форматов; чтение ограничено
по размеру.
## Известные ограничения
- **Host key не проверяется** (`ssh.InsecureIgnoreHostKey`). Канал не защищён от
подмены сервера на уровне SSH. Рассчитано на доверенную сеть; при
необходимости включайте строгую проверку host key на уровне инфраструктуры.
- **Путь внутри удалённой системы не ограничивается**: границей служат права
Unix-пользователя, под которым выполнено подключение. Заводите отдельного
пользователя с минимально необходимыми правами.
## Гигиена репозитория
- Реальные ключи, адреса и пароли в репозиторий не коммитятся: только
`ssh.json.example` с подстановками `${VAR}`.
- Приватные ключи и рабочие данные исключены через `.gitignore` (`/data/`).