DeepSeek Harness
Меню глав

← К оглавлению

[позже] SSH-плагин на другой сервер

Глава 5. Подключение к серверу (VPS, хостинг)

В прошлой главе вы научились подключать агента к GitHub. Теперь самый важный шаг — дать агенту доступ к вашему серверу. Именно здесь DeepSeek Harness кардинально отличается от Cursor.

В Cursor вы получали код и сами загружали его на сервер через FTP или панель хостинга. В DSH агент может сам подключиться к вашему серверу по SSH, загрузить файлы, создать базу данных, настроить веб-сервер и запустить сайт. Вы просто даёте задачу и получаете работающий сайт.

Но есть один нюанс: вы даёте агенту доступ к вашему серверу. Если что-то пойдёт не так, агент может удалить файлы, перезаписать конфигурацию или выполнить опасные команды. Поэтому безопасность — главная тема этой главы.


5.1. Зачем агенту доступ к серверу

Если коротко: чтобы вы перестали быть «курьером» между агентом и сервером.

Что агент сможет делать после подключения к серверу:

Действие Как это было в Cursor Как будет в DSH
Написать код сайта ✅ ИИ писал ✅ ИИ пишет
Загрузить файлы на сервер ❌ вы сами через FTP ✅ агент сам через SSH
Создать базу данных ❌ вы сами в панели ✅ агент сам создаёт
Настроить веб-сервер (Nginx/Apache) ❌ вы сами ✅ агент сам настраивает
Запустить сайт ❌ вы сами ✅ агент сам запускает
Проверить, что сайт работает ❌ вы открываете браузер ✅ агент проверяет и сообщает
Исправить ошибку на сервере ❌ вы сами ищете логи ✅ агент читает логи и чинит

Простыми словами: вы даёте агенту задачу «сделай сайт и запусти его», а агент делает всё сам — от написания кода до деплоя на сервер и проверки работоспособности.


5.2. Два способа подключения к серверу

Есть два основных способа дать агенту доступ к вашему серверу. Они различаются по сложности и тому, что вы получаете на выходе.

Способ 1: SSH-туннель (самый простой и безопасный)

Этот способ не требует установки плагинов. Вы просто открываете SSH-туннель между своим компьютером и сервером, и DSH работает так, как будто сервер — это ваш локальный компьютер.

Как это работает:
1. Вы открываете терминал на своём компьютере.
2. Создаёте SSH-туннель командой:
bash ssh -L 3080:localhost:3080 пользователь@ваш_сервер
3. Теперь всё, что DSH делает на порту 3080 вашего компьютера, автоматически передаётся на сервер.
4. Агент может выполнять команды на сервере через этот туннель.

Плюсы:
- Не нужно устанавливать плагины — работает «из коробки».
- Безопасно — туннель зашифрован, и вы контролируете доступ.
- Подходит для разовых задач и тестирования.

Минусы:
- Туннель нужно открывать каждый раз перед работой.
- Если компьютер выключится или уснёт — туннель оборвётся.
- Агент не может работать по расписанию — вы должны быть за компьютером.

Для маркетолога: этот способ подходит, если вы хотите попробовать DSH на сервере без сложных настроек. Но для полноценной автоматизации (задачи по расписанию, работа в фоне) нужен второй способ.


Способ 2: Плагины для SSH-доступа (рекомендуемый)

Этот способ требует установки одного из специальных плагинов, которые дают агенту постоянный доступ к серверу. Один раз настроили — и агент может подключаться к серверу в любое время, даже когда ваш компьютер выключен.

Плюсы:
- Агент может работать автономно и по расписанию.
- Не нужно каждый раз открывать туннель.
- Можно управлять несколькими серверами одновременно.

Минусы:
- Требует установки и настройки плагина.
- Нужно быть внимательным с безопасностью.

Для маркетолога: этот способ — то, ради чего стоит осваивать DSH. Вы настраиваете доступ один раз, и дальше агент работает за вас в фоновом режиме.


5.3. Обзор плагинов для подключения к серверу

Сообщество создало несколько плагинов для SSH-доступа. Вот основные, отсортированные по сложности:

Плагин Что делает Для кого
dsh-ssh Базовый SSH-плагин: управление хостами, выполнение команд, загрузка/скачивание файлов Для начала — идеально
dsh-vps-hub Управление VPS-серверами: список серверов, тестирование подключения, выполнение команд, загрузка файлов Если у вас несколько серверов
dsh-ssh-remote SSH remote workspace: агент может напрямую просматривать, редактировать и выполнять файлы на удалённых серверах Для продвинутой работы
dsh-remote-server Подключение через @имя_сервера в чате. Команды чтения выполняются сразу, изменяющие — требуют подтверждения Если важна безопасность
dsh-netshell Терминал в веб-интерфейсе + защита от опасных команд (три уровня: открытый / с защитой / заблокированный) Для максимальной безопасности
dsh-ssh-bridge Ввод пароля через браузер, пароль не попадает в чат и логи Если используете парольную аутентификацию

Для маркетолога я рекомендую начать с dsh-ssh или dsh-vps-hub — они самые простые и дают всё необходимое.


5.4. Пошаговая инструкция: установка плагина dsh-ssh (рекомендуемый)

Этот плагин даёт агенту инструменты для работы с сервером: ssh_bash (выполнить команду), ssh_upload (загрузить файл), ssh_download (скачать файл).

Шаг 1. Установите плагин

Откройте терминал и выполните команду:

dsh plugin --profile web add https://github.com/dmz2922990/dsh-ssh.git

Что происходит: плагин скачивается и добавляется в ваш профиль web.

Шаг 2. Настройте плагин в конфигурации

После установки нужно добавить плагин в конфигурационный файл. Откройте файл:

~/.dsh/profiles/web/cordis.patch.yml

Добавьте в него следующие строки:

- insert:
  - id: dsh-ssh
    name: dsh-ssh
  - id: dsh-ssh-web
    name: dsh-ssh/webapi

Шаг 3. Перезапустите DSH

Закройте терминал с DSH (нажмите Ctrl+C) и запустите заново:

dsh web

Шаг 4. Добавьте ваш сервер

После перезапуска в веб-интерфейсе появится новый раздел «SSH Hosts» (SSH-хосты) в настройках.

  1. Откройте Settings → SSH Hosts.
  2. Нажмите «Add host».
  3. Заполните поля:
    - Name — любое имя (например, «Мой сервер»).
    - Host — IP-адрес или домен сервера.
    - Port — обычно 22.
    - Username — ваше имя пользователя на сервере.
    - Authentication — выберите способ:
    • key — если используете SSH-ключ (рекомендуется).
    • password — если используете пароль.
  4. Нажмите Save.

Шаг 5. Проверьте подключение

В диалоге с агентом напишите:

«Подключись к серверу "Мой сервер" и покажи текущую дату и время»

Если агент ответил с датой и временем — подключение работает.


5.5. Альтернатива: плагин dsh-vps-hub (если у вас несколько серверов)

Если у вас несколько серверов, удобнее использовать dsh-vps-hub — он позволяет вести список всех серверов в одном месте.

Установка:

cd ~/.dsh/profiles/web
npm install dsh-vps-hub

Затем добавьте в cordis.patch.yml:

- insert:
  - id: vps-hub
    name: 'dsh-vps-hub'

Перезапустите DSH.

Что даёт этот плагин:
- vps_list — показать все серверы.
- vps_exec — выполнить команду на сервере.
- vps_upload / vps_download — загрузить/скачать файлы.
- Пароли хранятся только в памяти и исчезают после перезапуска.
- Ключи хранятся в защищённой папке ~/.dsh/keys с правами 0600 (только для чтения владельцем).


5.6. Безопасность: как защитить свой сервер

Это самый важный раздел. Вы даёте агенту доступ к вашему серверу — и если что-то пойдёт не так, последствия могут быть серьёзными.

Правило 1: Используйте SSH-ключи, а не пароли

SSH-ключи безопаснее паролей. Если используете пароль, плагин dsh-ssh передаёт его через механизм SSH_ASKPASS, который не сохраняет пароль на диск. Но ключи всё равно надёжнее.

Как создать SSH-ключ (если у вас его нет):

В терминале на вашем компьютере:

ssh-keygen -t ed25519 -C "ваша_почта@example.com"

Нажимайте Enter, чтобы сохранить в стандартное место. Затем скопируйте публичный ключ на сервер:

ssh-copy-id пользователь@ваш_сервер

Правило 2: Создайте отдельного пользователя для агента

Никогда не давайте агенту доступ под пользователем root. Создайте отдельного пользователя с ограниченными правами:

# На сервере
sudo adduser dsh-agent
sudo mkdir /home/dsh-agent/www
sudo chown dsh-agent:dsh-agent /home/dsh-agent/www

Этот пользователь сможет работать только в своей папке и не навредит системе.

Правило 3: Ограничьте команды, которые может выполнять агент

Некоторые плагины (например, dsh-netshell) поддерживают три уровня защиты:

  • open — все команды разрешены (опасно!).
  • guarded — опасные команды требуют подтверждения.
  • locked — только команды из белого списка.

Для начала используйте режим guarded — агент запросит ваше подтверждение перед выполнением опасных команд.

Правило 4: Не давайте доступ к рабочему серверу

Первые несколько недель работайте только с тестовым сервером или тестовой директорией. Создайте отдельный сайт для экспериментов, который не жалко сломать.

Правило 5: Используйте плагины с защитой от опасных команд

Плагин dsh-remote-server имеет двухуровневую систему подтверждения:
- Команды, которые только читают данные, выполняются сразу.
- Команды, которые изменяют состояние (удаляют файлы, перезаписывают конфиги), останавливаются и просят вашего разрешения.

Плагин dsh-netshell хранит пароли в зашифрованном хранилище DSH, и они никогда не попадают в AI-сессию или логи.

Правило 6: Регулярно проверяйте логи агента

DSH записывает каждый шаг агента в траекторию (Trajectory). Раз в неделю просматривайте, какие команды агент выполнял на сервере — это поможет заметить подозрительную активность.


5.7. Что делать, если подключение не работает

Проблема Что проверять
Плагин не появился в интерфейсе Плагин установлен? Добавлен в cordis.patch.yml? DSH перезапущен?
Ошибка подключения к серверу Правильный ли IP-адрес? Открыт ли порт 22 в firewall?
Ошибка аутентификации Правильный ли логин/пароль? SSH-ключ добавлен на сервер?
Команда не выполняется Есть ли у пользователя права на выполнение этой команды?
Файлы не загружаются Есть ли права на запись в целевой директории?

Универсальный способ диагностики:

Выполните команду в терминале:

dsh --profile web --dump-config

Она покажет, какие плагины и настройки реально загружены. Если плагин не отображается в выводе — он не установлен или не настроен.


5.8. Пример: первая задача с подключением к серверу

Когда подключение настроено, попробуйте дать агенту такую задачу:

«Подключись к серверу "Мой сервер". Создай в папке /home/dsh-agent/www файл index.html с текстом "Привет, мир! Это мой первый сайт, развёрнутый через DeepSeek Harness". Проверь, что файл создался, и покажи его содержимое.»

Если агент выполнил задачу — поздравляю! Теперь вы можете давать ему более сложные задачи: создать полноценный сайт, настроить базу данных, развернуть админку.


5.9. Итоговый чек-лист

После прочтения этой главы вы должны уметь:

  • [x] Понимать, зачем агенту доступ к серверу.
  • [x] Выбирать между SSH-туннелем (для разовых задач) и плагином (для постоянной автоматизации).
  • [x] Устанавливать плагин dsh-ssh или dsh-vps-hub.
  • [x] Добавлять сервер в настройки плагина.
  • [x] Проверять подключение через простую команду.
  • [x] Понимать основные правила безопасности (отдельный пользователь, ограниченные права, режим guarded).
  • [x] Диагностировать типичные проблемы.

Следующая глава (Глава 6) будет посвящена созданию профиля (Profile) — вашей «машины для автоматизации», в которой вы сохраните все настройки (GitHub, сервер, плагины) и сможете запускать типовые задачи одной командой.


Квиз по главе 10 вопросов · нажмите, чтобы открыть

Ответьте на все вопросы и сдайте квиз — сразу будет оценка и отсылки к тексту, где доучить ошибки.

Вопрос 1 из 10

Почему доступ к серверу — ключевое отличие DSH от Cursor?

Вопрос 2 из 10

Какие два базовых способа подключения разбираются?

Вопрос 3 из 10

Какой плагин рекомендуется как базовый для SSH?

Вопрос 4 из 10

Когда упоминают dsh-vps-hub?

Вопрос 5 из 10

Что безопаснее для входа агента на сервер?

Вопрос 6 из 10

Почему для агента советуют отдельного пользователя?

Вопрос 7 из 10

Нужно ли ограничивать команды агента на сервере?

Вопрос 8 из 10

Стоит ли сразу давать агенту доступ к единственному боевому серверу со всеми проектами?

Вопрос 9 из 10

Если SSH не подключается, куда смотреть в учебнике?

Вопрос 10 из 10

Итог главы 5?