Ключевые тезисы
- •По системным требованиям Claude Code на 27 октября 2026 года серверу достаточно Ubuntu 20.04 или новее, 4 ГБ оперативной памяти и процессора x64 или ARM64: модель работает на инфраструктуре Anthropic, а VPS исполняет команды и хранит файлы
- •Claude Code запускают от отдельного пользователя с входом по SSH-ключу, а вход под root и по паролю отключают только после проверки нового ключа
- •Herdr держит терминальные панели в фоновом сервере, поэтому обрыв SSH не останавливает агента, а после перезагрузки VPS интеграция возобновляет разговор командой claude --resume без повторного запуска прерванной команды
- •Mutagen в режиме two-way-safe синхронизирует локальную и серверную копии проекта без потери данных при конфликтах, но только пока обе машины доступны
- •VPS за рубежом не гарантирует защиту от блокировки аккаунта: Claude доступен только в странах из официального списка Anthropic
Удалённая среда для Claude Code устроена так: агент, Git и инструменты разработки работают на арендованном Linux-сервере, а домашний компьютер служит для подключения, редактирования кода и просмотра результатов. Я собираю её из пяти частей: VPS, Claude Code, VS Code Remote SSH, Herdr для постоянных терминальных сессий и Mutagen для синхронизации файлов. Для работы в Claude Design к ним добавляется графический рабочий стол XFCE, к которому подключаются через X2Go.
Claude Code меняет порядок работы над кодом: агенту ставят задачу и дают доступ к проекту, после чего он сам анализирует файлы, вносит изменения, запускает команды и исправляет ошибки. При постоянном использовании быстро возникают практические вопросы. Нужно понять, как запускать агента на сервере безопасно, как продолжить работу после закрытия ноутбука, как получить файлы с VPS локально и можно ли работать в привычном VS Code вместо отдельного SSH-терминала. Отдельно стоит вопрос доступности Claude в разных регионах.
Ниже разобрана настройка этих пяти частей с нуля, от первого входа на сервер до нескольких агентов, которые продолжают работу после закрытия ноутбука, а в конце показано, как добавить на сервер рабочий стол для Claude Design.
Как устроена система
Обычного SSH для такой схемы недостаточно: он даёт доступ к серверу, но не решает две задачи, для которых нужны отдельные программы. Herdr управляет долгоживущими терминальными сессиями: клиент можно отключить от сервера, а запущенные агенты продолжат работу. Mutagen синхронизирует файлы между VPS и домашним компьютером, если нужна локальная копия проекта.
У каждого инструмента своя часть работы:
| Компонент | Что делает |
|---|---|
| VPS | Linux-окружение, которое работает независимо от ноутбука |
| Claude Code | Выполняет задачи разработки |
| VS Code Remote SSH | Открывает и редактирует проект прямо на сервере |
| Herdr | Держит терминальные сессии и агентов в фоновом процессе на сервере |
| Mutagen | Синхронизирует файлы проекта с домашним компьютером |
В итоге можно запускать несколько агентов, править код в привычном редакторе и возвращаться к прежним сессиям после отключения от сервера.
Выбор VPS и региональные ограничения Anthropic
Anthropic официально поддерживает не все страны, поэтому у пользователей возникают сложности с регистрацией, оплатой и работой сервиса. Иногда советуют арендовать VPS в той же стране, где выпущена банковская карта для оплаты Claude, чтобы страна подключения и платёжные данные выглядели согласованно.
Совпадение IP-адреса и страны выпуска карты не гарантирует защиту от блокировки. У Anthropic нет опубликованного правила, по которому такая схема обеспечивает доступ. Пользоваться Claude нужно из страны, которая входит в официальный список доступных регионов, с корректными данными аккаунта и с соблюдением условий сервиса. В этой схеме VPS выполняет роль удалённой среды разработки, а не способа обойти региональные ограничения. Правовые вопросы работы с зарубежными нейросетями в российском бизнесе собраны в статье «Можно ли использовать ChatGPT для бизнеса в России», а задачу доступа клиентов из России к AI-продуктам на зарубежных серверах решает reverse proxy в Yandex Cloud.
Конфигурация сервера
Мощный GPU для Claude Code не нужен: языковая модель работает на инфраструктуре Anthropic, а сервер исполняет команды и хранит файлы. Системные требования Claude Code для Linux: Ubuntu 20.04+ или Debian 10+, от 4 ГБ оперативной памяти, процессор x64 или ARM64. Для начала я бы взял такую конфигурацию:
| Параметр | Рекомендация |
|---|---|
| Операционная система | Ubuntu 24.04 LTS |
| CPU | 2 vCPU |
| Оперативная память | 4 ГБ |
| SSD | 40 ГБ |
| Доступ | SSH |
| Сеть | Стабильное подключение к интернету |
Для Docker, крупных сборок, баз данных, нескольких тяжёлых проектов или графического рабочего стола для Claude Design лучше сразу взять 8 ГБ RAM и больше.
После аренды провайдер выдаёт IP-адрес, данные для подключения и доступ к консоли управления. В примерах ниже используются такие значения:
Сервер: 203.0.113.10
Пользователь: developer
Папка: /home/developer/projects
Адрес 203.0.113.10 зарезервирован для документации, в командах его нужно заменить реальным IP вашего сервера.
Подключение к серверу и отдельный пользователь
Многие провайдеры выдают доступ от root. Для первоначальной настройки это допустимо, но постоянно работать под root, особенно с AI-агентом, не стоит. Claude Code выполняет shell-команды, устанавливает пакеты, удаляет файлы и меняет конфигурацию проекта, и с правами root любая ошибка может затронуть всю систему. Поэтому для работы создаётся отдельный пользователь.
Шаг 1. Первое подключение
На домашнем компьютере откройте терминал. В Windows подойдут PowerShell или Windows Terminal со встроенным SSH-клиентом.
ssh root@203.0.113.10
Если провайдер выдал пользователя ubuntu, замените им root и в шагах 2 и 3 добавляйте sudo перед каждой командой на сервере. При первом подключении SSH попросит подтвердить ключ сервера, и его fingerprint желательно заранее сверить в консоли провайдера.
Шаг 2. Создание пользователя
На сервере выполните команду и задайте пароль:
adduser developer
Если пользователю иногда нужно выполнять административные операции, добавьте его в группу sudo:
usermod -aG sudo developer
Членство в группе позволяет вызывать sudo, но не делает каждую программу привилегированной. При этом пользователь с доступом к sudo всё равно может получить права администратора, поэтому для полностью изолированного агента лучше завести отдельную учётную запись без sudo. Команды с sudo в шагах 4 и 5 выполняет пользователь с правами администратора; если developer создан без sudo, выполните их под root без префикса sudo.
Шаг 3. Вход по SSH-ключу
Вход по ключу удобнее и безопаснее пароля. На домашнем компьютере создайте пару ключей:
ssh-keygen -t ed25519 -C "claude-vps"
По умолчанию ключи сохраняются в двух файлах:
~/.ssh/id_ed25519
~/.ssh/id_ed25519.pub
Первый файл содержит приватный ключ, его нельзя копировать на сервер или кому-либо передавать. Второй содержит публичный ключ, именно его добавляют на VPS.
В Linux и macOS, если для пользователя разрешён вход по паролю, достаточно одной команды:
ssh-copy-id developer@203.0.113.10
В Windows утилиты ssh-copy-id обычно нет. Выведите публичный ключ и скопируйте полученную строку:
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub
Затем зайдите на VPS через исходное подключение и создайте каталог для ключей:
install -d -m 700 -o developer -g developer \
/home/developer/.ssh
Откройте файл, вставьте публичный ключ одной строкой и сохраните:
nano /home/developer/.ssh/authorized_keys
Настройте владельца и права доступа:
chown developer:developer \
/home/developer/.ssh/authorized_keys
chmod 600 \
/home/developer/.ssh/authorized_keys
Проверьте вход с домашнего компьютера:
ssh developer@203.0.113.10
Важно: не отключайте вход под root и авторизацию по паролю, пока не убедитесь, что новый ключ работает и у вас остаётся способ восстановить доступ через консоль провайдера.
Шаг 4. Базовая защита VPS
Обновите систему и установите нужные утилиты:
sudo apt update
sudo apt upgrade -y
sudo apt install -y \
curl git ca-certificates \
openssh-client
Если SSH работает на стандартном порту 22 и консоль восстановления у провайдера доступна, включите межсетевой экран UFW:
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status
Если SSH работает на нестандартном порту, сначала разрешите этот порт, иначе подключение может пропасть. Ключи SSH стоит защитить парольной фразой, а дополнительные порты без необходимости не открывать.
Шаг 5. Отключение входа по паролю и под root
Когда вход по ключу проверен, запретите вход под root и авторизацию по паролю. В Ubuntu 24.04 настройки SSH удобно задать отдельным файлом в /etc/ssh/sshd_config.d/: файлы из этого каталога читаются по алфавиту, и для каждого параметра действует первое найденное значение, поэтому файл с префиксом 10- имеет приоритет над 50-cloud-init.conf, который создают многие провайдеры. Это правило описано в справке OpenSSH по sshd_config.
printf 'PermitRootLogin no\nPasswordAuthentication no\n' \
| sudo tee /etc/ssh/sshd_config.d/10-hardening.conf
sudo sshd -t && sudo systemctl reload ssh
Команда sshd -t проверяет конфигурацию, и SSH перечитывает её, только если проверка прошла. Текущую сессию после перезагрузки настроек не закрывайте: сначала откройте второй терминал и убедитесь, что ssh developer@203.0.113.10 по-прежнему входит по ключу.
Установка Claude Code
Сначала убедитесь, что вы подключены под нужным пользователем:
whoami
Команда должна вывести developer. Запускать Claude Code от root не нужно.
Нативный установщик
Официальный установщик Anthropic ставит нативную сборку Claude Code:
curl -fsSL https://claude.ai/install.sh | bash
Чтобы проверить скрипт до выполнения, сначала скачайте его в файл и изучите содержимое. После установки проверьте версию:
claude --version
Если терминал сообщает command not found, переподключитесь по SSH. Установщик кладёт исполняемый файл в ~/.local/bin/claude. Если этого каталога нет в PATH, добавьте его:
echo 'export PATH="$HOME/.local/bin:$PATH"' \
>> ~/.bashrc
source ~/.bashrc
Состояние установки проверяет встроенная диагностика:
claude doctor
Отдельно устанавливать Node.js для нативной сборки не требуется.
Авторизация
Создайте рабочую директорию и запустите Claude Code:
mkdir -p ~/projects/my-project
cd ~/projects/my-project
claude
Дальше следуйте процедуре входа. На удалённом сервере браузер не откроется автоматически, поэтому ссылку из терминала копируют, проходят авторизацию в браузере на своём компьютере и, если потребуется, вставляют код подтверждения обратно в терминал. Для входа нужен аккаунт с разрешённым доступом к сервису либо поддерживаемый вариант подключения через API или корпоративную инфраструктуру.
После входа дайте первую задачу:
Изучи текущий проект, опиши его структуру
и предложи улучшения. Пока ничего не меняй.
Если Claude Code читает файлы и описывает проект, базовая установка работает.
VS Code через Remote SSH
По обычному SSH-подключению доступен только терминал. VS Code с расширением Remote SSH открывает файловую систему VPS, позволяет редактировать файлы, работать с Git, расширениями и встроенным терминалом, а код физически остаётся на сервере.
Установка расширения
На домашнем компьютере откройте VS Code, перейдите в Extensions и установите официальное расширение Microsoft Remote - SSH (идентификатор ms-vscode-remote.remote-ssh). Подробное описание работы расширения есть в документации VS Code.
Профиль сервера в SSH-конфиге
Файл SSH-конфигурации находится в ~/.ssh/config в Linux и macOS и в C:\Users\USERNAME\.ssh\config в Windows. Добавьте в него профиль:
Host claude-vps
HostName 203.0.113.10
User developer
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 30
ServerAliveCountMax 3
Параметры профиля:
| Параметр | Назначение |
|---|---|
Host | Короткое имя подключения |
HostName | Реальный IP-адрес VPS |
User | Пользователь Linux |
IdentityFile | Путь к приватному ключу |
ServerAliveInterval | Интервал проверки соединения в секундах |
ServerAliveCountMax | Число проверок без ответа до разрыва |
После сохранения файла подключаться можно по имени профиля:
ssh claude-vps
Открытие удалённого проекта
Нажмите Ctrl+Shift+P, выберите команду Remote-SSH: Connect to Host, затем профиль claude-vps и после подключения откройте папку /home/developer/projects/my-project. В нижней части окна появится индикатор удалённого подключения. Откройте встроенный терминал и проверьте окружение:
whoami
hostname
pwd
Если команды выводят developer, имя вашего VPS и путь к проекту, подключение настроено. В боковой панели теперь отображаются файлы сервера, и с ними работают так же, как с локальными: открывают, правят, ищут, коммитят. Команды в терминале и процессы разработки при этом выполняются на VPS.
VS Code Remote SSH не копирует проект на домашний компьютер, а работает с файлами непосредственно на сервере. Локальную копию проекта даёт Mutagen, о нём ниже.
Herdr: постоянные сессии Claude Code
Допустим, Claude Code получил задачу на несколько десятков минут: разбирает проект, меняет код, запускает тесты. Если в этот момент закрыть VS Code или потерять SSH-соединение, процесс в обычном SSH-терминале может завершиться вместе с подключением. Эту проблему решает Herdr.
Что такое Herdr
Herdr представляет собой терминальную среду для управления coding-агентами. Агенты работают в отдельных терминальных панелях, между которыми можно переключаться и к которым можно вернуться после отключения клиента. Терминальные сессии живут в фоновом сервере Herdr, а интерфейс, через который вы к ним подключаетесь, отделён от них. Claude Code запускается не в SSH-терминале, а внутри панели, которой управляет этот сервер, поэтому при обрыве SSH процесс агента на сервере продолжает работу.
Herdr распознаёт поддерживаемых агентов, в том числе Claude Code, показывает их состояние и сохраняет данные для восстановления сессий. Этим он отличается от tmux и других терминальных мультиплексоров: отключение и повторное подключение работают так же, но Herdr ещё и видит, какой агент ждёт подтверждения, и умеет возобновить разговор Claude Code после перезапуска. Команды ниже проверены на Herdr 0.9 в октябре 2026 года; проект развивается быстро, поэтому при расхождениях ориентируйтесь на документацию Herdr.
Установка Herdr
Подключитесь к VPS и установите Herdr:
ssh claude-vps
curl -fsSL https://herdr.dev/install.sh | sh
herdr --version
Если команда не находится, проверьте путь установки и переменную PATH, затем откройте новый SSH-сеанс. Запустите Herdr:
herdr
Откроется терминальный интерфейс, а фоновый сервер Herdr запустится автоматически, если он ещё не работает.
Интеграция с Claude Code
Herdr работает с любыми терминальными процессами, но для привязки панели к конкретной сессии Claude Code нужна интеграция. Перед её установкой Claude Code должен хотя бы раз запуститься, чтобы появился каталог конфигурации ~/.claude. Затем в обычном терминале VPS выполните:
herdr integration install claude
herdr integration status
Интеграция добавляет в настройки Claude Code hook, который при старте сессии сообщает Herdr её идентификатор. По этому идентификатору Herdr связывает терминальную панель с разговором агента и после перезапуска своего сервера возобновляет его командой claude --resume <id>. Порядок восстановления описан в документации Herdr о состоянии сессий.
Первый агент
В интерфейсе Herdr создайте терминальную панель, перейдите в директорию проекта и запустите Claude Code:
cd ~/projects/my-project
claude
Теперь агент работает внутри Herdr, и ему можно поставить задачу:
Изучи проект, найди потенциальные проблемы,
составь план исправления и реализуй его
после моего подтверждения.
В нескольких панелях можно параллельно вести независимые задачи:
Для параллельной работы в одном репозитории каждому агенту нужен отдельный Git worktree со своей веткой или отдельный клон репозитория. Отдельной ветки недостаточно: в одной рабочей копии агенты работают с одними и теми же файлами и могут перезаписать изменения друг друга.
Проверка состояния Herdr
Состояние клиента и сервера Herdr выводит команда:
herdr status
Только сервер проверяется так:
herdr status server
Проверка отключения
Запустите агента в Herdr, дайте ему задачу, которая не требует немедленного участия человека, и отключите клиент сочетанием Ctrl+B, затем Q, или просто закройте SSH-соединение. Панель с агентом вручную не закрывайте. Позже подключитесь снова и запустите Herdr:
ssh claude-vps
herdr
Клиент подключится к работающему серверу, и запущенные ранее процессы окажутся на месте.
Подключение к Herdr с локального компьютера
Если Herdr установлен и на домашнем компьютере, к серверу на VPS можно подключиться напрямую через SSH-профиль:
herdr --remote claude-vps
Отдельный SSH-сеанс открывать не нужно. В такой схеме код удобно править в VS Code, а агентами на VPS управлять из локального Herdr.
Ограничения непрерывной работы
Herdr сохраняет терминальные сессии независимо от подключения клиента, но не гарантирует, что задача завершится без вашего участия. Claude Code останавливается, когда запрашивает подтверждение действия, исчерпывает лимит использования, получает ошибку инструмента или аварийно завершается.
При перезагрузке VPS все процессы прекращаются. Когда вы снова запускаете herdr и клиент подключается к новому серверу, Herdr восстанавливает раскладку панелей и, если установлена интеграция, возобновляет разговор Claude Code, но команда, которая выполнялась в момент перезагрузки, заново не запускается. Восстановление сессии не равно непрерывному исполнению задачи.
Для повседневной удалённой разработки это всё равно заметно удобнее, чем агенты в отдельных SSH-терминалах.
Mutagen: синхронизация файлов между сервером и компьютером
Когда агент меняет проект на сервере, изменения иногда нужны и в локальной папке: чтобы открыть файлы другими программами, запустить локальные инструменты или держать копию кода дома. Копировать файлы вручную через SCP или Git неудобно, а постоянную автоматическую синхронизацию обеспечивает Mutagen.
Принцип работы
Mutagen синхронизирует две директории: одну на домашнем компьютере, другую на VPS. Изменение файла на одной стороне обнаруживается и переносится на другую.
В двустороннем режиме файл, изменённый Claude Code на VPS, обновляется локально, а правка на домашнем компьютере уходит на сервер. Это не общий сетевой диск, а две отдельные копии, которые Mutagen поддерживает в согласованном состоянии.
Установка Mutagen
Mutagen ставят на домашний компьютер. При синхронизации через SSH он сам разворачивает на сервере своего агента, поэтому отдельно устанавливать программу на VPS обычно не нужно.
В macOS с Homebrew:
brew install mutagen-io/mutagen/mutagen
В Linux подойдёт Homebrew или официальный архив релиза для вашей архитектуры. Распакуйте архив целиком и добавьте в PATH каталог со всем его содержимым: рядом с исполняемым файлом mutagen должен лежать mutagen-agents.tar.gz, из которого Mutagen берёт агента для установки на сервер. Актуальные варианты перечислены на странице установки.
В Windows скачайте официальный архив со страницы релизов, распакуйте его целиком, чтобы mutagen.exe и mutagen-agents.tar.gz оказались в одной папке, и добавьте эту папку в системную переменную PATH. Без архива агентов команда mutagen sync create не сможет установить агента на VPS.
Проверьте установку:
mutagen version
Подготовка директорий
На VPS папка проекта уже есть:
/home/developer/projects/my-project
Создайте соответствующую папку на домашнем компьютере. В Linux и macOS:
mkdir -p ~/projects/my-project
В Windows подойдёт, например, такой путь:
C:\Users\USERNAME\Projects\my-project
Перед первой синхронизацией сделайте резервную копию проекта. Надёжнее всего начинать с одной заполненной папки и одной пустой, так первый запуск пройдёт без неожиданных конфликтов.
Создание сессии синхронизации
На домашнем компьютере с Linux или macOS:
mutagen sync create \
--name=claude-project \
--sync-mode=two-way-safe \
--ignore=node_modules \
--ignore=.git \
--ignore=.env \
--ignore=.venv \
--ignore=dist \
--ignore=build \
~/projects/my-project \
claude-vps:/home/developer/projects/my-project
В Windows в PowerShell:
mutagen sync create `
--name=claude-project `
--sync-mode=two-way-safe `
--ignore=node_modules `
--ignore=.git `
--ignore=.env `
--ignore=.venv `
--ignore=dist `
--ignore=build `
"C:\Users\USERNAME\Projects\my-project" `
"claude-vps:/home/developer/projects/my-project"
Замените USERNAME на имя пользователя Windows. В PowerShell строки переносятся обратным апострофом, а не обратным слешем.
Параметры команды
| Параметр | Назначение |
|---|---|
--name=claude-project | Понятное имя сессии синхронизации |
--sync-mode=two-way-safe | Двусторонняя синхронизация с безопасной обработкой конфликтов |
--ignore=node_modules | Исключает тяжёлую директорию зависимостей Node.js |
--ignore=.git | Не переносит служебные данные Git между машинами |
--ignore=.env | Не переносит файл окружения с возможными секретами |
--ignore=.venv, dist, build | Исключают виртуальное окружение и генерируемые файлы |
Режим two-way-safe используется в Mutagen по умолчанию. По документации Mutagen, конфликты в нём разрешаются автоматически только тогда, когда это не приводит к потере данных. Если один файл изменён на обеих сторонах, ни одна версия не удаляется, а конфликт сохраняется в состоянии сессии и виден в mutagen sync list. Историю репозитория при исключённом .git синхронизируют через Git remote. Вместо --ignore=.git можно использовать флаг --ignore-vcs, который исключает служебные каталоги всех систем контроля версий.
Проверка синхронизации
Список сессий и подробная диагностика:
mutagen sync list
mutagen sync list --long
Создайте тестовый файл на сервере:
echo "Hello from VPS" \
> ~/projects/my-project/sync-test.txt
Если соединение работает, через некоторое время файл появится в локальной директории. Измените его локально и проверьте, что содержимое обновилось на VPS.
Управление синхронизацией
Приостановить синхронизацию:
mutagen sync pause claude-project
Продолжить:
mutagen sync resume claude-project
Принудительно выполнить цикл синхронизации:
mutagen sync flush claude-project
Удалить сессию синхронизации (файлы на обеих сторонах остаются):
mutagen sync terminate claude-project
Работа после закрытия терминала
Mutagen использует фоновую службу на домашнем компьютере, поэтому закрытие терминала синхронизацию не останавливает. В отличие от Herdr, Mutagen синхронизирует файлы, только пока обе стороны доступны и локальная служба работает. Если выключить домашний компьютер, агент на VPS продолжит работу, а изменения появятся локально после включения компьютера и восстановления соединения. После перезагрузки домашнего компьютера служба Mutagen запускается автоматически при первой команде управления сессиями, например mutagen sync list. Чтобы она стартовала при входе в систему без участия пользователя, в macOS и Windows есть экспериментальная команда регистрации (подробности в документации Mutagen о службе):
mutagen daemon register
В Linux для этого достаточно добавить mutagen daemon start в ~/.profile или ~/.bashrc. Herdr отвечает за независимость процессов на сервере, Mutagen обеспечивает согласованность файлов между доступными машинами.
Что не стоит синхронизировать
Не добавляйте в синхронизацию домашнюю директорию пользователя целиком. Особенно это касается каталогов с приватными ключами, токенами и данными авторизации:
~/.ssh
~/.claude
~/.aws
~/.config
Нежелательно также синхронизировать базы данных, большие кеши, зависимости и файлы, которые одновременно меняют несколько процессов. Mutagen синхронизирует файлы, но не заменяет ни контроль версий, ни резервное копирование, поэтому Git остаётся обязательной частью схемы.
X2Go и XFCE: рабочий стол на VPS для Claude Design
Claude Code работает в терминале, а Claude Design нужен экран: в нём собирают прототипы интерфейсов, макеты и презентации, правят их на холсте и оставляют комментарии. Claude Design встроен в Claude: дизайн запрашивают в чате на claude.ai или командой /design в Claude Code, а смотреть и править макет удобнее всего в браузере. Отдельный сайт claude.ai/design Anthropic закрывает 14 декабря 2026 года, проекты с него переносятся в основной интерфейс Claude.
Чтобы браузер с Claude Design работал на том же VPS, что и агенты, на сервер ставят лёгкий рабочий стол XFCE и подключаются к нему через X2Go. X2Go передаёт графическую сессию поверх SSH, поэтому новые порты открывать не нужно, а вход по ключу из шага 3 работает и здесь. Сессию можно приостановить и вернуться к ней позже, в том числе с другого компьютера: окна и вкладки браузера останутся открытыми, так же как панели в Herdr.
Для рабочего стола серверу нужно больше памяти: XFCE, браузер с холстом Claude Design и несколько агентов вместе на 4 ГБ RAM работают с трудом, поэтому для такой схемы я беру от 8 ГБ.
Отдельный пользователь для браузера
Браузер хранит cookies и сессию входа в аккаунт Claude. Если запустить его под пользователем developer, Claude Code сможет прочитать профиль браузера, как любые другие файлы в домашней директории. Поэтому рабочий стол запускается под вторым пользователем без прав sudo. Под developer создайте его:
sudo adduser designer
Скопируйте новому пользователю ваш открытый SSH-ключ, иначе после шага 5 он не сможет войти:
sudo install -d -m 700 -o designer -g designer \
/home/designer/.ssh
sudo install -m 600 -o designer -g designer \
~/.ssh/authorized_keys /home/designer/.ssh/authorized_keys
Проверьте вход с домашнего компьютера:
ssh designer@203.0.113.10
Установка XFCE и X2Go
На VPS под пользователем developer установите рабочий стол, терминал для него и сервер X2Go. Все пакеты есть в стандартных репозиториях Ubuntu 24.04:
sudo apt update
sudo apt install -y xfce4 xfce4-terminal \
x2goserver x2goserver-xsession
Дисплейный менеджер и графический вход на сервере не нужны: X2Go сам запускает сессию XFCE при подключении. Графику он передаёт через перенаправление портов SSH. В Ubuntu оно включено по умолчанию, и настройки из шага 5 его не меняют, но если в конфигурации SSH стоит AllowTcpForwarding no, X2Go не подключится.
Браузер без snap
В Ubuntu 24.04 пакет firefox из стандартного репозитория устанавливает snap-версию браузера, а snap-приложения в сессиях X2Go нередко не запускаются с ошибкой is not a snap cgroup (обсуждение на Ubuntu Discourse). Поэтому браузер лучше поставить из deb-пакета. На сервере с процессором x64 подойдёт Google Chrome:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install -y ./google-chrome-stable_current_amd64.deb
Пакет подключает репозиторий Google, и дальше Chrome обновляется вместе с системой через apt. Этот пакет собран для x64; на сервере с ARM64 используйте deb-сборку Firefox из репозитория Mozilla.
Подключение из X2Go Client
На домашний компьютер установите X2Go Client по инструкции проекта. В Windows это установщик с сайта X2Go, в macOS дополнительно нужен XQuartz, в Ubuntu и Debian клиент ставится командой:
sudo apt install x2goclient
Создайте в клиенте новую сессию:
| Поле | Значение |
|---|---|
| Host | 203.0.113.10 |
| Login | designer |
| SSH port | 22 |
| Use RSA/DSA key for ssh connection | путь к приватному ключу, например ~/.ssh/id_ed25519 |
| Session type | XFCE |
После подключения откроется рабочий стол XFCE. Первым делом отключите композитинг: с ним в сессиях X2Go бывают ошибки отрисовки, это описано в таблице совместимости X2Go. Откройте терминал на рабочем столе и выполните:
xfconf-query -c xfwm4 -p /general/use_compositing -s false
Затем запустите Chrome, войдите в аккаунт Claude и откройте Claude Design.
Приостановка и возврат к сессии
Чтобы отключиться, не закрывая браузер, приостановите сессию кнопкой Suspend в X2Go Client. При следующем подключении клиент предложит возобновить её, и рабочий стол откроется в том же состоянии. Выход через меню XFCE (Log Out) завершает сессию вместе с браузером.
Список сессий пользователя designer на сервере:
ssh designer@203.0.113.10 x2golistsessions
Как и в случае с Herdr, приостановленная сессия переживает отключение клиента, но не перезагрузку VPS.
Как это выглядит в повседневной работе
Утром я открываю VS Code, подключаюсь через Remote SSH к VPS и открываю папку проекта. Параллельно запускаю Herdr и вижу существующие сессии Claude Code: можно продолжить работу с одним агентом, поставить новую задачу другому или проверить результат уже завершённой. Файлы редактируются в VS Code, а Mutagen, если нужна локальная копия, синхронизирует их с домашним компьютером. Когда нужен макет экрана или презентация, я возобновляю сессию X2Go, где браузер с Claude Design остался открытым со вчерашнего дня.
Например, три агента ведут три задачи. Первый анализирует API и исправляет ошибки бэкенда, второй работает над интерфейсом, третий проверяет изменения и готовит отчёт. У каждого свой worktree. Все три запущены на VPS в Herdr.
Вечером ноутбук можно закрыть. Если агенты выполняют разрешённые действия и не ждут подтверждения, они продолжают работу на сервере, а на следующий день результаты ждут в тех же панелях. Держать домашний компьютер включённым круглосуточно не нужно.
Частые проблемы и диагностика
Claude Code не запускается
whoami
command -v claude
claude --version
claude doctor
Если программа установлена, но команда не находится, проверьте PATH. Если whoami возвращает root, перейдите в обычную учётную запись.
VS Code не подключается по SSH
Сначала проверьте соединение из обычного терминала:
ssh -v claude-vps
Если SSH не работает и без VS Code, причина, скорее всего, в сети, ключах, правах доступа или конфигурации сервера. Если обычный SSH работает, а Remote SSH нет, смотрите журнал расширения в VS Code.
Herdr не видит Claude Code
Проверьте, что Claude Code установлен и доступен в PATH, затем проверьте интеграцию и при необходимости установите её заново:
command -v claude
herdr integration status
herdr integration install claude
После изменения интеграции перезапустите Claude Code в панели Herdr, чтобы hook начал работать.
Herdr не восстановил задачу после перезагрузки VPS
Восстановление сессии и продолжение процесса следует различать. При перезагрузке Linux все процессы завершаются. Herdr может возобновить разговор поддерживаемого агента, но прерванная работа с места остановки не продолжится. Проверьте состояние задачи, журналы агента и изменения в репозитории.
Mutagen перестал синхронизировать файлы
mutagen sync list --long
ssh claude-vps
Если SSH работает, а Mutagen сообщает о конфликтах, сначала определите, какие версии файлов правильные. Не удаляйте сессию и не перезаписывайте одну директорию другой, пока причина конфликта не ясна.
X2Go не подключается или браузер не запускается
Сначала проверьте обычный вход под тем же пользователем:
ssh designer@203.0.113.10
Если SSH работает, а X2Go Client нет, проверьте, что в настройках SSH не запрещено перенаправление портов (AllowTcpForwarding), и что в сессии выбран тип XFCE. Артефакты отрисовки обычно исчезают после отключения композитинга XFCE. Если браузер не стартует с ошибкой is not a snap cgroup, замените snap-версию на deb-пакет, как описано в разделе об X2Go.
Claude Code сообщает о проблемах с доступом
Если Anthropic отклоняет авторизацию или ограничивает аккаунт, сначала выясните причину. Она может быть связана с регионом, оплатой, состоянием подписки, ограничениями организации или нарушением правил использования. Смена сервера или IP-адреса восстановления доступа не гарантирует. Список стран, где доступен Claude, приведён в справке Anthropic.
Правила безопасности
AI-агент на сервере требует большей осторожности, чем ручная работа в терминале, потому что Claude Code запускает команды и меняет файлы. Доступ ко всему серверу без необходимости ему давать не стоит. Я придерживаюсь шести правил:
- Не запускать Claude Code под root. Для разработки нужен отдельный пользователь.
- Входить по SSH-ключам. Приватные ключи с домашнего компьютера не копируются на сервер и не хранятся в синхронизируемых папках. Для доступа VPS к Git-репозиторию на сервере создаётся отдельный ключ, который добавляется в репозиторий как deploy key с минимальными правами, либо используется токен с ограниченным набором репозиториев.
- Ограничивать права агента. Режимы, в которых агент выполняет действия без подтверждения, например флаг
--dangerously-skip-permissions, включаются только при полном понимании последствий. - Пользоваться Git и резервными копиями. Несколько агентов быстро вносят много изменений, и возможность откатиться к прежнему состоянию обязательна.
- Следить за ресурсами и расходами. VPS оплачивается отдельно, а Claude Code расходует лимиты подписки или оплачиваемый API. Herdr и Mutagen этих ограничений не отменяют.
- Держать браузер отдельно от агента. Рабочий стол X2Go и браузер с входом в аккаунт Claude запускаются под отдельным пользователем без sudo, чтобы агент не имел доступа к cookies и сохранённым сессиям.
Итог
Схема требует аренды VPS, отдельного пользователя, настройки SSH, установки нескольких инструментов и синхронизации, но почти вся эта работа выполняется один раз. После неё Claude Code работает на сервере и не зависит от мощности домашнего компьютера, VS Code открывает удалённый проект почти как локальный, Herdr отделяет терминальные сессии от SSH-клиента и помогает управлять несколькими агентами, Mutagen держит код на обеих машинах, X2Go даёт рабочий стол с браузером для Claude Design, а SSH служит единым защищённым способом подключения.
Главное преимущество этой архитектуры в том, что работа перестаёт зависеть от одного компьютера и одного открытого терминала. Задачи можно запускать, переключаться между устройствами и возвращаться к ним позже. VPS не защищает от блокировок Anthropic, но даёт предсказуемое и управляемое окружение для разработки, и для тех, кто регулярно работает с Claude Code и другими coding-агентами, такая настройка оправдана.
Полезные ссылки
- Документация Claude Code
- Системные требования и установка Claude Code
- Страны, где доступен Claude
- VS Code Remote SSH
- Herdr и документация Herdr
- Herdr: сохранение и восстановление сессий
- Mutagen и документация Mutagen
- Начало работы с Claude Design
- X2Go: установка сервера и клиента
Что читать дальше
Архитектура шлюза, через который клиенты в России открывают AI-продукты на зарубежных серверах, разобрана в материале «Стабильный доступ к AI-продуктам на зарубежных серверах: reverse proxy в Yandex Cloud». Вариант, при котором модель, инструменты и данные агента остаются внутри периметра компании, описан в материале «Локальный ИИ-агент: модель, инструменты и данные внутри периметра».




