dsh-lab-ssh
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
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for Superserve sandboxes: create, exec, and manage Firecracker microVMs
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
- ArcjetOAuthcom.arcjet
An MCP server for Arcjet - the runtime security platform that ships with your AI code.
- gatewayOAuthai.sealgate
MCP gateway with runtime security policy, tool-call-level control, and audit of agent actions.
Related MCP Servers
- AlicenseAqualityDmaintenanceZero-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.177 npm2MIT
- AlicenseAqualityDmaintenanceAn 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.17234 PyPI23MIT
- AlicenseAqualityBmaintenanceSSH 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.147Apache 2.0
- AlicenseNot gradedqualityDmaintenanceA 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