Claude Code на удалённом сервере по SSH: установка, ключ и tmux

Claude Code — терминальный агент, ему не нужен графический интерфейс. Разбираем установку на сервер, авторизацию ключом Zukko, работу в tmux и защиту ключа.

4 мин · · разработка · агенты

Claude Code на сервере по SSH удобен, когда проект живёт на удалённой машине: dev-сервер с данными, мощная машина для сборки, VPS без графики. Claude Code — терминальный агент, поэтому SSH-подключения ему хватает. Ниже — установка по официальной документации (страница Advanced setup), авторизация ключом без браузера, работа в tmux и защита ключа.

Требования к серверу

По документации Claude Code поддерживает Ubuntu 20.04+, Debian 10+ и Alpine Linux 3.19+. Нужно от 4 ГБ оперативной памяти, процессор x64 или ARM64 и доступ в интернет. Node.js для официального установщика не нужен: он ставит нативный бинарник.

Установка Claude Code на сервер

Подключитесь по SSH обычным пользователем, не root, и выполните:

bash
curl -fsSL https://claude.ai/install.sh | bash

Установщик кладёт команду claude в ~/.local/bin. Если оболочка её не находит, добавьте каталог в PATH:

bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Проверьте установку:

bash
claude --version
claude doctor

Команда называется именно claude. Отдельного бинарника claude-code нет.

Есть и альтернативы. Для Debian/Ubuntu, Fedora/RHEL и Alpine Anthropic публикует подписанные репозитории apt, dnf и apk (инструкция — в разделе Install with Linux package managers документации). Если на сервере уже стоит Node.js, подойдёт npm install -g @anthropic-ai/claude-code, без sudo. Версия из официального установщика обновляется сама. Версии из пакетных менеджеров обновляются вместе с системой.

Авторизация ключом Zukko без браузера

На сервере обычно нет браузера для входа в аккаунт, и он не нужен. Если задана переменная ANTHROPIC_AUTH_TOKEN, Claude Code использует её. По документации она стоит выше входа через подписку и отправляется заголовком Authorization: Bearer.

Добавьте в ~/.bashrc:

bash
export ANTHROPIC_BASE_URL="https://api.zukko.pro"
export ANTHROPIC_AUTH_TOKEN="fetch_ваш_ключ"
export ANTHROPIC_MODEL="claude-sonnet-5"

Адрес без /v1, Claude Code добавляет его сам. Второй вариант — блок env в ~/.claude/settings.json. Так переменные видны только Claude Code:

bash
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.zukko.pro",
    "ANTHROPIC_AUTH_TOKEN": "fetch_ваш_ключ",
    "ANTHROPIC_MODEL": "claude-sonnet-5"
  }
}

Закройте файл от других пользователей сервера: chmod 600 ~/.claude/settings.json (или ~/.bashrc). Файл .env в папке проекта Claude Code сам не читает, поэтому ключ туда класть бесполезно.

Проверка подключения и список моделей:

bash
curl -s https://api.zukko.pro/v1/models -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN"

Подробная инструкция — в документации Zukko по Claude Code.

Как работать с Claude Code на сервере

Перейдите в папку проекта и запустите интерактивную сессию:

bash
cd /var/www/myapp
claude

Дальше задачи пишутся обычным языком: «найди, где обрабатываются ошибки API, и добавь логирование», «почему падает этот тест». Специальных подкоманд вроде analyze или edit у Claude Code нет. Агент сам читает файлы, предлагает правки и запускает команды, спрашивая разрешение.

Для разовых задач без интерактива есть режим -p:

bash
claude -p "Summarize what changed in the last 5 commits" --allowedTools "Bash(git log *),Bash(git diff *)"

Долгие сессии: tmux

При обрыве SSH-соединения процесс в терминале завершится. Чтобы сессия пережила обрыв, запускайте Claude Code внутри tmux:

bash
tmux new -s claude
cd /var/www/myapp && claude

Отключиться, не останавливая работу: Ctrl+B, затем D. Вернуться:

bash
tmux attach -t claude

Список сессий — tmux ls. Для нескольких проектов заведите несколько tmux-сессий с разными именами.

nohup для интерактивного режима не подходит, ему нужен терминал. Для фоновых разовых задач используйте nohup claude -p "..." > result.txt 2>&1 &.

Если сессия всё же оборвалась, беседу можно продолжить: claude --continue открывает последнюю беседу в текущей папке, claude --resume показывает список сессий.

Безопасность на сервере

  • Отдельный ключ. Создайте в кабинете Zukko ключ только для этого сервера. Задайте дневной и месячный лимит и список разрешённых моделей (например, только claude-sonnet-5). Если ключ утечёт, ущерб ограничен лимитом, а сам ключ отзывается в кабинете.
  • Не запускайте от root. Агент выполняет команды с правами вашего пользователя.
  • Разрешения. Не используйте --dangerously-skip-permissions на сервере с ценными данными. Опасные команды запретите правилами permissions.deny в ~/.claude/settings.json или в настройках проекта.
  • Не коммитьте ключ. Если он попал в git, удалите его в кабинете и создайте новый.

Расход и баланс

Баланс и историю расходов смотрите в кабинете (обзор, раздел «Использование») или через API — см. описание эндпоинта баланса. В Zukko claude-sonnet-5 стоит $0.3 за 1M входных и $0.3 за 1M выходных токенов. Сессия на 1 000 000 входных и 50 000 выходных токенов обойдётся в 1 × $0.3 + 0.05 × $0.3 = $0.315. Оговорка про кэш: у вендора чтение из кэша промптов стоит около 10% входной цены, а в Zukko кэшированные токены оплачиваются по обычной входной цене. Для агента с большим повторяющимся контекстом реальная разница с официальным прайсом меньше, чем при прямом сравнении цен.

Если модель выключена, шлюз вернёт HTTP 503 с кодом model_disabled. Выберите другую модель из GET https://api.zukko.pro/v1/models (или со страницы «Модели» в кабинете) и обновите ANTHROPIC_MODEL.

Частые вопросы

Нужно ли входить в аккаунт Anthropic на сервере?

Нет. При заданной ANTHROPIC_AUTH_TOKEN Claude Code авторизуется ключом Zukko.

Как посмотреть подробный лог?

Запустите claude --debug-file /tmp/claude.log и смотрите файл в соседнем окне tmux: tail -f /tmp/claude.log.

Можно ли запустить несколько сессий на одном сервере?

Да, в разных tmux-сессиях или окнах. У каждой свой контекст, расход идёт с ключа, заданного в окружении.

Как обновить Claude Code на сервере?

Версия из официального установщика обновляется автоматически, вручную — claude update. Для apt, dnf и apk используйте обычное обновление пакетов системы.

zukko

Платите в 25×
меньше

за Claude Code & ChatGPT

Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.

Claude Code на сервере по SSH: установка и tmux · Zukko