В 2026 году среда для ИИ-программирования обычно ломается не из-за слабой модели. Ноутбук засыпает, домашний каталог мешает личные файлы с репозиторием, а ключ API попадает в историю shell. Linux VPS может отделить всегда включённое исполнение от редактора в руках. Это руководство начинается с регистрации у провайдера и заканчивается, когда VS Code или Cursor правят файлы на этой машине. Приёмка — не «SSH открывается». Приёмка — это сессия tmux, которая жива после отключения ноутбука, и снимок, сделанный до крупной правки агента.
Почему среда уходит с ноутбука
Старая схема ставит CLI на ноутбук и позволяет агенту писать прямо в домашний каталог. Новая кладёт рабочее дерево, кэши зависимостей и длинную сессию на VPS, который занят только разработкой. Ноутбук только показывает экран и шлёт нажатия. Спор не в том, «дорога ли облако». Спор в границе исполнения. Закрытая крышка убивает локальные процессы. Обновление системы обрывает длинную задачу. На том же диске остаются сессии браузера и личные репозитории. VPS вынимает их из набора, который агент может писать по умолчанию.
VPS не решает другой класс работы. На Linux VPS нет macOS, значит нет подписи iOS и нет Xcode. Это и не кластер обучения. Агент, который вызывает размещённую модель, тратит память, диск и устойчивую сессию. Он не тратит GPU дата-центра. Если цель — локальный вывод, а не правка удалённого репозитория, начните с гида по выбору AI PC, а не покупайте графическую машину, чтобы писать прикладной код.
Регион задаёт ощущение раньше названия тарифа. Задержка Remote SSH лежит между вами и VPS. Задержка API модели лежит между VPS и хостом модели. Если вы сидите в Восточной Азии, а машина на востоке США, клавиши замедляются первыми, даже когда сама модель быстрая. Выберите регион ближе к стулу, потом говорите о числе ядер.
Держите VPS как устройство разработки с известным владельцем, а не как запасной компьютер для почты и чата. Как только личные входы и агент делят домашний каталог, вы заново собрали проблему ноутбука на чужом железе. Одна машина, одна работа, один пользователь по имени dev. Это ограничение и делает позднюю приёмку возможной.
Разделите среду на пять слоёв
Покупайте по слою, а не по прилагательному в рекламе. Прыжковая машина, coding VPS, сборочная машина, узел macOS и GPU-облако отвечают на разные вопросы. Сравнивать их как один вид «облачного сервера» — значит запускать Node на 2 ГБ или собирать iOS на Linux.
| Слой | Чем владеет | Симптом, если мало | Чего здесь не должно быть |
|---|---|---|---|
| Прыжок | только SSH | Установщик убивают посреди загрузки | Агент, база, контейнеры |
| Coding VPS | git, среды выполнения, один CLI-агент, tmux | Параллельные тесты и контейнеры дерутся за память | Xcode, обучение модели |
| Сборка | Больше ядер, больше памяти, контейнеры | Интерактивная правка становится вязкой | Повседневные входы браузера |
| Узел macOS | Подпись, симулятор, цепочка Apple | Инструмента на Linux просто нет | Считать его общим Linux-хостом |
| GPU-облако | Обучение и крупный вывод | GPU простаивает между правками багов | Обычные правки репозитория |
Практический пол слоя разработки — 4 vCPU, 8 ГБ памяти и около 80 ГБ диска. Один или два гигабайта — это прыжковая машина. Диску нужно держать node_modules, кэши языков и несколько checkout. Когда корневая файловая система проходит примерно восемьдесят процентов, сначала чистите кэш, потом увеличивайте диск. Не ждите, пока установщик упадёт с туманной ошибкой, похожей на сеть.
Число ядер значит меньше, чем кажется, если агент большую часть времени ждёт размещённую модель. В памяти живут сервер редактора, языковой сервер, Node или Python и процесс агента. Поэтому 8 ГБ — пол, а не роскошь. Если на той же машине нужны Docker и сквозные тесты уровня браузера, поднимитесь на ступень. Не находите предел посреди рефакторинга.
Водораздел — удалённый вход, а не модель
Умение модели — не водораздел. Водораздел — на какой машине лежит граница исполнения. Один человек может держать и Cursor, и Claude Code. Если один правит копию на ноутбуке, а другой — checkout на VPS, diff, который вы видите, не тот diff, который агент считает написанным.
| Инструмент | Вход | Исполнение | Контекст | Кому подходит |
|---|---|---|---|---|
| VS Code Remote SSH | Локальный редактор на VPS | Терминал, отладка и расширения работают удалённо | Удалённый репозиторий | Кто хочет оставить привычный редактор |
| Cursor Remote SSH | Тот же путь SSH | Дополнение и агент правят удалённые файлы | Удалённое рабочее место | Кто хочет редактор и агента на одном checkout |
| Claude Code или Codex CLI | tmux на VPS | Может править файлы и запускать тесты | Каталог, который вы открыли намеренно | Длинные задачи, которые должны пережить закрытую крышку |
| Удалённый Mac | Удалённый macOS | Xcode, подпись, симулятор iOS | Проект Apple | Цепочки, которым нужен macOS |
Эта статья не ранжирует модели. Разница входа, исполнения и контекста разобрана в сравнении Pi, Claude Code и Codex. Здесь нужно выбрать один CLI, положить его в tmux и направить редактор на тот же checkout той же машины.
Первое подключение Remote SSH попросит доверять ключу хоста. Сверьте отпечаток с тем, что показывает консоль провайдера, прежде чем принять. После этого редактор должен открыть удалённую папку, а не синхронизированную копию, которая разъезжается. Если строка состояния всё ещё говорит, что окно локальное, вы собираетесь править не тот диск.
Машину выбирают по задаче, не по имени тарифа
| Если вы | Выбирайте | Не выбирайте |
|---|---|---|
| Только разговариваете с моделью и не правите репозиторий | Локальный клиент | Любой VPS |
| Пишете веб или бэкенд и хотите, чтобы тесты жили после закрытия крышки | Coding VPS от 8 ГБ плюс tmux | Прыжковую машину на 1 ГБ |
| Одновременно гоняете контейнеры и сквозные тесты | Сборочную машину со следующей ступенью памяти | Делить 8 ГБ с интерактивной правкой |
| Собираете iOS или запускаете Xcode | Арендованный удалённый Mac | Linux VPS |
| Обучаете веса | GPU-облако | Этот coding VPS |
| Команде нужна длинная автоматизация, а не один человек за удалённой правкой | Автоматизацию на облачном Mac | Запихивать конвейер в личный VPS |
Разница между личным coding VPS и ноутбуком — это сессия и граница диска, а не «больше интеллекта». Командному конвейеру ещё нужны права, журналы и след, кто может войти. Это другая машина. Не включайте снова вход по паролю у пользователя dev из этого руководства только потому, что второму человеку нужен доступ.
Набора, которого хватает
Система — Ubuntu 24.04 LTS. Пользователь — dev. sudo по-прежнему спрашивает пароль, агент не работает от root. SSH только ed25519. Вход по паролю выключают, но лишь после того, как вход по ключу уже удался и веб-консоль провайдера ещё открыта. Среды выполнения — git, Python 3, Node 22 LTS и tmux. Ключ API лежит в ~/.config/ai-dev/provider.env, каталог с правами 700, файл с правами 600, путь — в списке игнорирования репозитория.
Со стороны редактора используйте Remote SSH в VS Code или Cursor. Блок Host живёт в ~/.ssh/config на вашем компьютере, не на VPS. Длинные задачи идут в сессию tmux с постоянным именем, например agent. Прежде чем позволить агенту широкую правку, снимите снимок в консоли провайдера.
Ставьте Node из дистрибутива или по текущей инструкции NodeSource для Node 22 LTS. Принимайте установку командой node -v, а не фразой «скрипт не напечатал ошибку». То же правило для Python и git. Строка версии — это наблюдение. Молчаливый установщик — нет.
Пять ошибок, которые обнуляют среду
- Гнать стек разработки на памяти прыжковой машины. Node умирает посреди установки. Это похоже на сеть. Это память.
- Выключить вход по паролю до того, как заработал ключ. Порядок такой: новая сессия по ключу удалась, старое окно консоли остаётся открытым, потом меняете sshd.
- Положить ключ API в командную строку. Он попадает в историю shell, и агент может эту историю прочитать. Ключ входит в сессию только из файла с правами 600.
- Дать dev sudo без пароля. Агент умеет запускать команды. sudo без пароля значит, что одна ошибочная команда может переписать sshd или межсетевой экран. Пароль sudo оставьте.
- Клонировать iOS-проект на Linux и искать xcodebuild. Инструмент не появится. Такие проекты с самого начала живут на удалённом Mac.
Шестая, тихая ошибка — показать агенту весь домашний каталог. Откройте одноразовый репозиторий как рабочее место. Кэши и файл ключа могут лежать рядом, но они не часть контекста запроса и не часть дерева git. Если первое действие агента — «почистить» точечные файлы, вы отдали слишком много диска.
Семь шагов от регистрации до удалённой разработки
У каждого шага есть наблюдение. Не начинайте следующий, пока не увидели это наблюдение.
- Регистрация. Включите двухфакторную аутентификацию, выберите близкий регион и запишите публичный IP. Почтовый ящик счетов и коды восстановления остаются в вашем менеджере паролей, а не на машине, которую вы вот-вот отдадите агенту.
- Ключи. На своём компьютере создайте ключ ed25519 и вставьте провайдеру только файл
.pub. Закрытый ключ остаётся на ноутбуке. - Пользователь. Создайте dev и добавьте sudo. После успешного входа по ключу как dev отключите вход root и вход по паролю. Держите уже открытое окно консоли, пока изменение не доказано.
- Среды выполнения. Поставьте git, цепочку компилятора, Python, tmux и Node 22 LTS. Принимайте их командами версии, а не молчаливым установщиком.
- Репозиторий. Под dev клонируйте одноразовый тестовый репозиторий и прогоните существующие тесты. Убедитесь, что агент позже получит этот каталог, а не весь дом.
- Агент. Поставьте один CLI по текущей документации поставщика. Ключ читается из env-файла с правами 600. Запустите его внутри tmux. Первая сессия должна объяснить устройство репозитория, а не рефакторить его.
- Удалённая правка. Добавьте Host в локальную конфигурацию SSH, подключитесь через VS Code или Cursor, измените один файл и закоммитьте его в тестовую ветку. Отключите ноутбук и выполните в консоли
tmux attach -t agent. Если сессия ещё там, снимите снимок. Это наблюдение и есть готовая среда.
ssh-keygen -t ed25519 -C "ai-dev-vps" -f ~/.ssh/id_ed25519_ai_vps # Загружать только id_ed25519_ai_vps.pub
sudo adduser dev sudo usermod -aG sudo dev sudo apt update sudo apt install -y git tmux build-essential python3 python3-venv python3-pip # Node 22 LTS из дистрибутива или текущей инструкции NodeSource node -v python3 --version git --version
Host ai-vps HostName YOUR_VPS_IP User dev IdentityFile ~/.ssh/id_ed25519_ai_vps IdentitiesOnly yes
mkdir -p ~/.config/ai-dev chmod 700 ~/.config/ai-dev install -m 600 /dev/null ~/.config/ai-dev/provider.env # Одна строка в provider.env, например ANTHROPIC_API_KEY=replace-me tmux new -s agent
PermitRootLogin no, PasswordAuthentication no и PubkeyAuthentication yes в /etc/ssh/sshd_config.d/99-ai-dev.conf. Оставьте консоль провайдера открытой, чтобы не запереть единственную дверь.
Межсетевой экран, который пускает SSH и отвергает остальное, — часть того же шага, а не отдельный проект. Если провайдер уже фильтрует трафик в панели, не накладывайте второе правило, которое запрёт вас снаружи. Меняйте один контроль, проверяйте вход по ключу, потом следующий. Консоль — откат для этой части, как снимок — откат для агента.
Вопросы, которые решают тариф
Хватит ли VPS на 1 или 2 ГБ для ИИ-программирования?
Нет. Такой размер только держит SSH живым. Когда одновременно живут Node, языковой сервер и агент, пол повседневной работы — 8 ГБ. Docker и параллельные тесты требуют следующую ступень.
Нужен ли агенту VPS с GPU?
Нет, если он вызывает размещённую модель. GPU оставьте обучению и крупному локальному выводу. Для ежедневной работы с репозиторием покупают память, диск и близкий регион.
Можно ли собирать iOS на Linux VPS?
Нет. Подпись, симулятор и xcodebuild принадлежат macOS. Возьмите удалённый Mac. Не тратьте день на поиск инструмента, которого на Linux не будет.
Безопасно ли держать ключи API на VPS?
Только если машина ваша, права узкие и репозиторий не может закоммитить файл. Файл 600, каталог 700. Не пишите ключ в историю shell и не отдавайте его агенту, запущенному от root.
Успешный SSH значит, что среда готова?
Нет. Приёмка — это сессия tmux, которая переживает отключение ноутбука, тестовый репозиторий, который агент может изменить, и снимок до этого изменения.
Куда это ставит решение
Сначала решите границу исполнения, потом регистрируйтесь. Coding VPS подходит репозиториям Linux, которые должны жить после закрытия крышки. Xcode и подпись идут на узел macOS. Обучение идёт на GPU. Удалённая разработка на месте, когда у всех семи шагов есть наблюдение, а не когда появляется баннер SSH. Открытая дверь значит только то, что дверь открыта.
Ещё по теме
- Если цель — локальные модели, начните с гида по AI PC →
- Чем Pi, Claude Code и Codex отличаются в исполнении →
- Длинную автоматизацию кладите на облачный Mac, не на личный VPS →
Если цепочке нужен macOS, берите удалённый Mac
Linux VPS умеет git, тесты и CLI-агента. Он не подписывает iOS и не запускает Xcode. Когда проекту нужна цепочка Apple, арендуйте отдельный Mac, а не заталкивайте репозиторий в Linux.