Переавторизация Claude на сервере
Если бот перестал отвечать или мгновенно присылает пустые сообщения, скорее всего истёк вход агента в Claude. Ручное обновление занимает около 5 минут.
Признаки
- бот молчит в Telegram;
- ответы приходят мгновенно, пустые или обрезанные;
- утренние сводки приходят слишком быстро и без содержания.
Причина
Claude выдаёт агенту токен доступа на срок около суток, перед каждым запросом агент обновляет его сам. Обновление ломается после смены пароля в Anthropic, после случайного запуска claude setup-token и в других редких случаях. Раз в год-два ручной вход бывает нужен: это обычная мера безопасности.
Порядок
- Подключиться к серверу. Через VS Code: Remote Explorer → Tunnels → сервер. Либо по SSH.
- Открыть терминал (
Ctrl+ ```). - Переключиться на пользователя бота:
sudo -u agent -i
В строке приглашения должно стоять $, а не #. Если бот работает не от agent, имя можно узнать командой systemctl cat agent-bot | grep User.
- Запустить вход:
claude /login
На вопрос о доверии папке нажать 1. В меню выбрать Claude Pro/Max subscription. Варианты «API key» и «Create token» не подходят.
- Авторизоваться в браузере. Скопировать длинную ссылку из терминала, открыть её на своём компьютере, войти под аккаунтом с подпиской Pro или Max и нажать «Authorize». Появится короткий код.
- Вставить код в терминал и нажать Enter. Должно появиться
Login successful. - Выйти и перезапустить бота:
exit
sudo systemctl restart agent-bot
- Проверить: написать боту любое сообщение.
Если через сутки сломалось снова
Мешают устаревшие переменные окружения со старого входа. От root или через sudo:
sudo sed -i '/^CLAUDE_CODE_OAUTH_TOKEN=/d' /home/agent/.agent/.env
sudo sed -i '/^CLAUDE_CODE_OAUTH_REFRESH_TOKEN=/d' /home/agent/.agent/.env
sudo sed -i '/^CLAUDE_CODE_OAUTH_SCOPES=/d' /home/agent/.agent/.env
Затем повторить шаги 3–8. Это безопасно: настоящий токен хранится в другом файле.
Типичные ошибки
claude: command not found: Claude Code не установлен у этого пользователя. Проверитьwhich claudeпод нужным пользователем.- Ссылка не открылась сама: сервер без графики, ссылку открывать вручную на своём компьютере.
- Браузер ругается на аккаунт: войти именно под тем аккаунтом Anthropic, где куплена подписка.
Permission deniedприrestart: сначала выйти из пользователя бота (exit), затем выполнитьsudo systemctl restart agent-bot.