1. Приложения Claude и четыре удаленных рабочих процесса

Claude Code — агент программирования Anthropic: он читает проекты, редактирует файлы, запускает команды и тесты. То, что многие называют Claude CLI, — это та же программа командной строки claude. Claude Desktop предлагает вкладки Chat, Cowork и Code; Code уже включает Claude Code, поэтому отдельная установка CLI не нужна.

  • Запуск claude на VPS через SSH: движок и проект остаются на VPS, а текст отображается в вашем локальном терминале.
  • Подключение локального Claude Desktop к SSH-окружению: графический интерфейс остается локальным, а движок Claude Code работает на VPS.
  • Remote Control: процесс Claude Code продолжает работать на VPS, пока вы управляете им с другого компьютера, телефона или браузера.
  • Cloud Session: задача выполняется в инфраструктуре, управляемой Anthropic, а не на вашем VPS.
  • Полный удаленный рабочий стол нужен только при необходимости: RDP для Windows, Screen Sharing для macOS, RDP/X2Go/VNC для Linux. Не устанавливайте GUI только ради отказа от CLI.

2. Пути данных: синхронизация сессии — не синхронизация файлов

  • SSH и CLI: VPS читает и редактирует файлы и выполняет команды; ваш компьютер показывает вывод терминала, но файлы автоматически не синхронизируются.
  • Локальный Desktop с SSH: локальное приложение показывает разговоры, запросы разрешений и diff, а VPS выполняет Claude Code, Git и команды проекта. Удаленные файлы остаются преимущественно на VPS.
  • Remote Control: VPS выполняет код и обращается к файлам, а разговоры и активность инструментов проходят через Anthropic API на другие устройства.
  • Пока Remote Control подключен, транскрипт хранится на серверах Anthropic для синхронизации; выполнение и доступ к файловой системе остаются на VPS.
  • Remote Control не является прямой P2P-связью и не полной синхронизацией диска; фактическое получение файлов все равно требует Git, SCP или rsync.

3. Подготовка VPS и защита доступа

  • Текущие требования Claude Code включают 4 ГБ ОЗУ или больше, x64 или ARM64, доступ по HTTPS и поддерживаемую страну или регион. Вывод модели выполняется в облаке, поэтому GPU не нужен.
  • Создайте отдельную непривилегированную учетную запись для каждого пользователя и не запускайте Claude от root; используйте ключи SSH и ограничьте вход по паролю и исходные IP.
  • Не открывайте лишние порты Claude, VNC, RDP или серверов разработки; Remote Control требует только исходящий HTTPS.
  • Храните проекты в каталогах, принадлежащих непривилегированному пользователю; удаленный процесс получает ровно права пользователя SSH.
  • При первом подключении проверьте отпечаток хоста через консоль VPS или другой доверенный канал; не устанавливайте StrictHostKeyChecking no.
# Проверка хоста Linux
cat /etc/os-release
uname -m
free -h
df -h "$HOME"

# Локальная запись ~/.ssh/config после проверки ключа хоста
Host vps-claude
  HostName 203.0.113.10
  User dev
  Port 22
  IdentityFile ~/.ssh/id_ed25519
  IdentitiesOnly yes
  StrictHostKeyChecking yes
  ServerAliveInterval 60
  ServerAliveCountMax 3

# Проверьте соединение
ssh vps-claude

4. Установка Claude Code на VPS с Linux

  • Ubuntu/Debian: установите curl, ca-certificates, git и tmux перед запуском официального нативного установщика.
  • Fedora/RHEL: используйте dnf для тех же инструментов; если tmux недоступен во включенных репозиториях, используйте одобренный репозиторий или screen вместо неизвестного бинарника.
  • Alpine: musl требует bash, curl, libgcc, libstdc++ и ripgrep, а USE_BUILTIN_RIPGREP нужно установить в 0.
  • Для продакшена Anthropic также предоставляет подписанные репозитории apt, dnf и apk; перед доверием проверьте официальный отпечаток подписи.
# Ubuntu / Debian
sudo apt update
sudo apt install -y curl ca-certificates git tmux

# Fedora / RHEL: sudo dnf install -y curl ca-certificates git tmux

# Официальный нативный установщик (также работает на macOS и WSL)
curl -fsSL https://claude.ai/install.sh | bash

# Откройте новый терминал и проверьте
claude --version
claude doctor

# Если команда не найдена
export PATH="$HOME/.local/bin:$PATH"
claude --version

# Абсолютный путь для неинтерактивного SSH
~/.local/bin/claude --version

# Дополнительные зависимости Alpine
apk add bash curl libgcc libstdc++ ripgrep git tmux

5. Windows Server и удаленные хосты macOS

  • Claude Code CLI поддерживает Windows Server 2019 и новее. В PowerShell обычного пользователя выполните irm https://claude.ai/install.ps1 | iex, затем проверьте claude --version и claude doctor.
  • Поддержка CLI в Windows Server не означает, что все графические функции Claude Desktop поддерживают ту же ОС; для серверных задач предпочтителен CLI.
  • Чтобы подключить локальный Desktop к хосту Windows, установите Microsoft OpenSSH Server и проверьте SFTP и поведение удаленного процесса.
  • В macOS используйте тот же нативный установщик или brew install --cask claude-code; удаленный Mac можно использовать напрямую через SSH или как хост для SSH-окружения локального Desktop.

6. Вход и учетные данные на VPS без браузера

  • Запустите claude в каталоге проекта и скопируйте URL входа в браузер на своем компьютере для авторизации.
  • Если браузер не может достичь callback VPS, он покажет код входа; вставьте его в терминал VPS в приглашении Paste code here if prompted.
  • Используйте /status для проверки аутентификации, /logout для выхода и /login для повторного входа. Claude Code требует Pro, Max, Team, Enterprise или Console; бесплатный план claude.ai его не включает.
  • ANTHROPIC_API_KEY и подписка Claude — разные пути аутентификации и оплаты; не записывайте реальные ключи в репозитории, Dockerfile, скриншоты или историю оболочки.
  • claude setup-token предназначен для CI и скриптов; токен может делать запросы к модели, но не создает Remote Control и не обращается к коннекторам claude.ai.
  • Учетные данные Linux обычно хранятся в ~/.claude/.credentials.json с режимом 0600; не загружайте и не синхронизируйте этот файл публично.
# Интерактивно прочитайте API-ключ в Bash, чтобы он не попал в историю команд
read -rsp "Anthropic API key: " ANTHROPIC_API_KEY; echo
export ANTHROPIC_API_KEY
claude

# Проверьте метаданные учетных данных, не читая секрет
stat -c '%a %U %n' ~/.claude/.credentials.json

7. Держите сессию живой с tmux

  • Создайте сессию командой tmux new -s claude-vps.
  • Перейдите в проект и запустите claude внутри tmux.
  • Нажмите Ctrl+B, затем D, чтобы отключиться, оставив процесс работающим.
  • Переподключайтесь через tmux attach -t claude-vps и смотрите сессии через tmux ls.
  • Для одноразового результата, сохраненного на вашем компьютере, выполните claude -p через неинтерактивный SSH и перенаправьте вывод.
tmux new -s claude-vps
cd /srv/my-project
claude

# Переподключитесь позже
tmux attach -t claude-vps
tmux ls

# Запустите сводку на VPS и сохраните локально
ssh vps-claude 'cd /srv/my-project && ~/.local/bin/claude -p "Summarize this project"' > ./project-summary.md

8. Управление VPS через Remote Control

Remote Control создает только исходящие HTTPS-соединения и не открывает входящий порт. Транскрипты проходят через серверы Anthropic и хранятся там для синхронизации, а код и файлы остаются на VPS. Вложения могут загружаться на VPS, обычно в ~/.claude/uploads/, но созданные файлы проекта все равно нужно получать через Git, SCP или rsync.

  • Remote Control требует подписку Pro, Max, Team или Enterprise и полный вход claude.ai через /login. Ключи API, setup-token, Bedrock, Vertex, Foundry и некоторые пользовательские базовые URL API не поддерживаются.
  • VPS должен оставаться включенным, а процесс claude — работать; организация также может отключить функцию.
  • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC и DISABLE_GROWTHBOOK могут сделать ее недоступной. Если ключ API переопределяет подписку, удалите его и снова выполните /login.
  • Используйте claude remote-control для серверного режима, claude --remote-control "VPS Project" для сохранения локального взаимодействия или /remote-control внутри существующей сессии.
  • После одноразового подтверждения терминал показывает URL сессии и QR-код. Откройте claude.ai/code или используйте приложение Claude с тем же аккаунтом и организацией.
  • Для параллельных сессий, которым не следует редактировать один и тот же каталог, рассмотрите --spawn worktree.
tmux new -s claude-remote
cd /srv/my-project

# Серверный режим
claude remote-control

# Независимые worktree для параллельных сессий
claude remote-control --spawn worktree

# Сохранить взаимодействие в терминале VPS и разрешить другие устройства
claude --remote-control "VPS Project"

9. Лучший графический процесс: локальный Claude Desktop с SSH

Desktop передает ответы, вывод инструментов, запросы разрешений и diff на ваш компьютер, но правки и операции Git остаются на VPS. Длинные задачи также зависят от обновления учетных данных, перезапуска VPS, KillUserProcesses, обновлений помощника и онлайн-инструментов. Если ваш компьютер должен выключиться, предпочтите Cloud Session, а не предполагайте, что Desktop SSH надежно проработает всю ночь.

  • Установите официальное приложение Claude Desktop на свой компьютер, войдите и откройте Code. Существуют сборки для macOS, Windows и Ubuntu/Debian Linux beta; отдельные Node.js или CLI не нужны.
  • Откройте селектор окружения → New environment → SSH → Add SSH connection….
  • Введите Name, SSH host (user@hostname или Host из ~/.ssh/config), SSH port, необязательный путь к локальному закрытому ключу и необязательную Worktree folder.
  • Выберите каталог удаленного проекта и нажмите Create environment. При первом подключении Desktop устанавливает движок и помощник в ~/.claude/remote/ без sudo.
  • Каждому подключающемуся пользователю нужно около 1 ГБ свободного места и записываемый исполняемый домашний каталог, не смонтированный с noexec.
  • Хосту нужны SSH с SFTP, рабочая оболочка, сетевой доступ, Git для функций Git и несколько сессий на одно соединение; MaxSessions 1 вызывает ошибки.
# Конфигурация бастиона в ~/.ssh/config
Host devbox
  HostName devbox.internal.example.com
  User dev
  ProxyJump bastion.example.com

# Введите devbox в поле SSH host в Desktop
# Поведение клиента Windows отличается; проверьте требования system-openssh для ProxyJump

# Независимо проверьте SFTP
sftp vps-claude

10. Запуск Claude Desktop внутри удаленного GUI

  • Claude Desktop для Linux находится в beta и требует Ubuntu 22.04+ или Debian 12+, x86_64 или arm64, графический рабочий стол и доступный keyring; эти требования отличаются от CLI.
  • Не запускайте claude-desktop от root; заблокированный keyring может помешать сохранению входа.
  • Cowork дополнительно требует QEMU, KVM, /dev/kvm и связанную виртуализацию. Многие платформы VPS не поддерживают вложенную виртуализацию, поэтому используйте Code или CLI.
  • На графическом хосте Windows устанавливайте и входите через защищенный RDP; не открывайте порт RDP 3389 всему интернету.
  • На удаленном Mac используйте Screen Sharing и защищайте порт VNC 5900 VPN или SSH-туннелем, а не публичным доступом.
# Добавьте официальный репозиторий Claude Desktop на Ubuntu / Debian
sudo curl -fsSLo /usr/share/keyrings/claude-desktop-archive-keyring.asc   https://downloads.claude.ai/claude-desktop/key.asc

gpg --show-keys /usr/share/keyrings/claude-desktop-archive-keyring.asc
# Отпечаток: 31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE

echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/claude-desktop-archive-keyring.asc] https://downloads.claude.ai/claude-desktop/apt/stable stable main"   | sudo tee /etc/apt/sources.list.d/claude-desktop.list

sudo apt update
sudo apt install claude-desktop
claude-desktop

# Пробросьте удаленный VNC на локальную машину; не открывайте порт 5900
ssh -L 127.0.0.1:5900:127.0.0.1:5900 vps-claude

11. Возврат разговоров, файлов и превью на ваш компьютер

  • Для небольших текстовых файлов читайте их через SSH и перенаправляйте вывод в локальный файл.
  • Используйте scp для отдельной загрузки и скачивания и rsync для синхронизации каталогов; избегайте --delete, пока не поймете его эффект.
  • Используйте Git для исходного кода, чтобы история, diff и откат оставались доступными вместо повторного копирования всего каталога.
  • Вложения Remote Control могут попадать на VPS, но созданные файлы проекта все равно нужно забирать через Git, SCP или rsync.
  • Предварительно просматривайте веб-приложения через локальный проброс порта SSH, а не открывайте порты разработки публично.
# Скачайте небольшой текстовый файл
ssh vps-claude 'cat /srv/my-project/result.md' > ./result.md

# Загрузите файл
scp ./input.zip vps-claude:/srv/my-project/

# Скачайте файл
scp vps-claude:/srv/my-project/result.md ./result.md

# Загрузите содержимое каталога
rsync -av --partial --progress ./my-project/ vps-claude:/srv/my-project/

# Скачайте содержимое каталога
rsync -av --partial --progress vps-claude:/srv/my-project/ ./my-project/

# Просмотрите изменения исходного кода на VPS
git status
git diff

# Перенаправьте приложение на 127.0.0.1:3000 VPS на тот же локальный адрес
ssh -L 127.0.0.1:3000:127.0.0.1:3000 vps-claude
# Затем откройте http://127.0.0.1:3000

12. Контейнеры, бастионы и ограниченные сети

  • Используйте официальную функцию Claude Code Dev Container и именованный том для сохранения аутентификации и настроек между сборками; никогда не встраивайте учетные данные в образ и не делайте commit контейнера с ними.
  • Не монтируйте весь ~/.ssh хоста; предпочитайте краткосрочные токены или менеджер секретов и рассматривайте файлы проекта и конфигурацию Claude как отдельные области хранения.
  • Remote Control требует только исходящий HTTPS, поэтому публичный IP не нужен. Для SSH используйте бастион, WireGuard, оверлейную сеть или корпоративный VPN.
  • Для прокси или корпоративного CA на VPS с Linux задайте HTTPS_PROXY и NODE_EXTRA_CA_CERTS в ~/.claude/settings.json. Desktop SSH может не читать ~/.bashrc.
  • Не отключайте проверку TLS ради обхода ошибок сертификатов.
// ~/.claude/settings.json
{
  "env": {
    "HTTPS_PROXY": "http://proxy.example.com:8080",
    "NODE_EXTRA_CA_CERTS": "/etc/ssl/certs/example-ca.pem"
  }
}

// devcontainer.json: сохранить конфигурацию между пересборками
"mounts": [
  "source=claude-code-config,target=/home/node/.claude,type=volume"
],
"containerEnv": {
  "CLAUDE_CONFIG_DIR": "/home/node/.claude"
}

13. Диагностика и контроль безопасности

  • Вход в браузере завершился, но терминал — нет: скопируйте код входа из браузера в терминал VPS; локальные callback часто недоступны через SSH и контейнеры.
  • claude не найден: проверьте ~/.local/bin в PATH, запустите claude doctor и используйте абсолютный путь для неинтерактивного SSH.
  • Remote Control требует аутентификацию подписки: проверьте ключи API, CLAUDE_CODE_OAUTH_TOKEN, setup-token, сторонних провайдеров, пользовательский базовый URL и политику организации, затем выполните полный /login.
  • SSH работает, но Desktop не создает окружение: проверьте SFTP, MaxSessions, права домашнего каталога, noexec, диск, исходящий доступ и настройки прокси в удаленном settings.json.
  • Задача исчезает после отключения: проверьте tmux, KillUserProcesses, перезапуск VPS, обновление учетных данных и замену помощника.
  • Избегайте --dangerously-skip-permissions в продакшене; начните с Manual или Plan и выдавайте только нужные задаче разрешения.
  • Если ваш компьютер должен выключиться, используйте Cloud Session или специально спроектированную серверную задачу и схему обновления учетных данных.