[позже] 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-хосты) в настройках.
- Откройте Settings → SSH Hosts.
- Нажмите «Add host».
- Заполните поля:
- Name — любое имя (например, «Мой сервер»).
- Host — IP-адрес или домен сервера.
- Port — обычно 22.
- Username — ваше имя пользователя на сервере.
- Authentication — выберите способ:key— если используете SSH-ключ (рекомендуется).password— если используете пароль.
- Нажмите 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, сервер, плагины) и сможете запускать типовые задачи одной командой.
Квиз по главе
Ответьте на все вопросы и сдайте квиз — сразу будет оценка и отсылки к тексту, где доучить ошибки.