Skip to main content
Glama
gdgfd22

dsh-lab-ssh

by gdgfd22

dsh-lab-ssh

Английский | 简体中文

SSH-инструменты разработки с защитными ограничениями для DeepSeek Harness и стандартных MCP-клиентов.

Плагин позволяет агенту, работающему на подключённой рабочей станции, использовать GPU, среду выполнения и явно настроенное рабочее пространство с исходным кодом лабораторного сервера, при этом сервер остаётся изолированным от публичного интернета.

Версия 0.3.0 — экспериментальный предварительный выпуск. Перед лабораторным развёртыванием зафиксируйте проверенную версию DeepSeek Harness.

Это независимый плагин сообщества, а не официальный пакет DeepSeek AI.

Зачем это нужно

Предоставление агенту обычного SSH-терминала открывает доступ к произвольным адресам, командам и путям файловой системы. Этот проект добавляет уровень политики, запрещающей всё по умолчанию:

  • фиксированные, видимые для модели псевдонимы хостов;

  • закреплённые SHA256-отпечатки ключей хостов OpenSSH;

  • ссылки на учётные данные через переменные окружения, локальные файлы ключей или SSH Agent;

  • для каждого хоста — списки разрешённых команд, правила автоматического одобрения и правила запрета;

  • ограниченный объём вывода команд и таймауты;

  • корневые каталоги на удалённом сервере, задаваемые через псевдонимы, с каноническими проверками ограничения (containment);

  • ограниченное чтение UTF-8 и атомарная запись с защитой по хэшу;

  • опциональные рабочие каталоги команд на основе псевдонимов;

  • отключённый по умолчанию HTTPS-мост артефактов для офлайн-серверов;

  • единая JSON-политика, общая для DeepSeek Harness и Codex MCP.

Плагин не предоставляет доступа к произвольным хостам, интерактивным оболочкам, встроенным секретам, неограниченной передаче файлов, операциям delete/move/chmod, фоновым командам, пробросу портов, обратным туннелям или пробросу агента.

Related MCP server: ssh-mcp

Статус

Плагин DeepSeek Harness, stdio MCP-сервер, политика команд, ограниченный доступ по SFTP, псевдонимы рабочих каталогов и первый слой моста артефактов реализованы. Тестовый набор содержит 25 тестов в 9 файлах и никогда не обращается к реальной лабораторной инфраструктуре или публичному интернету.

Визуальные сеансы кратковременных учётных данных, постоянный аудит, политика на основе ролей, синхронизация каталогов, замыкание зависимостей, кэширование и возобновляемая передача остаются задачами на будущее.

Быстрый старт

Требования:

  • Node.js ^22.19 или >=24;

  • DeepSeek Harness 0.1.0-rc.7 или совместимая предварительная версия 0.1.x;

  • pnpm в PATH для dsh plugin.

Сборка и установка:

Set-Location <PLUGIN_DIR>
npm install
npm run build
npx -y @deepseek-ai/dsh@0.1.0-rc.7 plugin --profile web add <PLUGIN_DIR>

Скопируйте пример конфигурации за пределы репозитория, замените все заполнители и укажите пользовательский патч DSH на этот файл:

- id: lab-ssh
  config:
    configFile: C:/Users/<USER>/.dsh/lab-ssh.private.json

Задайте переменные окружения для учётных данных в том же процессе, который запускает DSH:

$env:LAB_SSH_GPU01_PASSWORD = '<enter locally>'
npx -y @deepseek-ai/dsh@0.1.0-rc.7 web

См. руководство оператора на китайском языке и краткое руководство на китайском языке по настройке, политике одобрений, офлайн-подготовке артефактов и устранению неполадок.

Инструменты

  • ssh_list_hosts: выводит список настроенных псевдонимов хостов с удалёнными конфиденциальными данными.

  • ssh_list_file_roots: выводит псевдонимы каталогов и политику доступа.

  • ssh_list_directory: выводит записи, ограниченные рамками разрешённого корневого каталога.

  • ssh_read_file: читает текст UTF-8 ограниченного размера и возвращает его SHA256.

  • ssh_write_file: создаёт или атомарно заменяет текст UTF-8 ограниченного размера.

  • ssh_exec: выполняет команду из списка разрешённых на фиксированном хосте и, опционально, в каталоге, указанном через псевдоним.

  • ssh_stage_artifact: скачивание, проверка и атомарная загрузка одного артефакта с обязательным одобрением.

Офлайн-серверы

Мост артефактов — не прозрачный прокси. Рабочая станция принимает HTTPS-URL без учётных данных и токенов в строке запроса, проверяет каждый редирект по административному списку разрешённых доменов, применяет ограничение размера и обязательный доверенный SHA256, а затем атомарно создаёт файл в корневом каталоге, явно разрешающем артефакты. Существующие файлы не заменяются.

Общее проксирование SOCKS/HTTP, проброс SSH и обратные туннели остаются вне рамок проекта, чтобы сохранить сетевую изоляцию сервера.

Codex MCP

Репозиторий содержит безопасный пустой файл config/lab-ssh.empty.json и проектный файл .codex/config.toml. Соберите пакет и перезагрузите Codex в доверенном проекте, чтобы обнаружить MCP-сервер. Для реального развёртывания укажите в приватной конфигурации Codex на JSON-файл вне репозитория.

Сервер также можно запустить напрямую:

node <PLUGIN_DIR>/lib/mcp-server.js --config <PRIVATE_CONFIG_PATH>

Разработка и проверка

npm install
npm run typecheck
npm test
npm run build
npm run pack:check

В Windows запустите приёмочный тест в чистом окружении (clean-room), который заново клонирует публичный репозиторий в системную временную папку и не переиспользует ни текущие зависимости, ни результаты сборки, ни профиль DSH, ни приватную SSH-конфигурацию:

powershell -ExecutionPolicy Bypass -File scripts/clean-room-test.ps1

Он выполняет npm ci, проверку типов, тесты, сборку, проверку пакета, установку плагина в изолированный профиль и HTTP-смоук-тест DSH Web с hosts: []. По умолчанию используется порт 3180, а временное окружение затем удаляется.

Перед публикацией ознакомьтесь с SECURITY.md. Реальная SSH-конфигурация, учётные данные, журналы, локальные профили, результаты сборки и архивы не должны попадать в коммиты или включаться в релиз.

Лицензия

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Zero-config SSH/SFTP MCP server that lets an LLM client open temporary SSH/SFTP sessions to remote hosts, run commands, and upload/download files without holding any pre-baked credentials.
    17
    7 npm
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that gives AI agents SSH access to remote machines through your local OpenSSH client, enabling remote command execution, file transfer, persistent shell sessions, and port forwarding.
    17
    234 PyPI
    23
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    SSH orchestration MCP server for coding agents, enabling persistent bash sessions, hash-protected remote file editing, SFTP transfers, SSH tunnels, and multi-host orchestration with connection reuse across tools.
    14
    7
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    A secure SSH-based MCP server for diagnosing remote servers. It allows AI agents to execute read-only commands and read files automatically, while requiring user confirmation for write operations.
    MIT