Claude научили не запирать себя на VPS
Агент с правами root на сервере может случайно отрезать себе доступ — и тогда приходится спасать VPS через панель провайдера. Для таких случаев появился открытый набор скриптов vps-forge, который помогает безопасно менять SSH, файрвол и fail2ban.
Почему агент сам себя банит
Проблема начинается с простого сценария: агент настраивает fail2ban, несколько раз подряд проверяет вход по SSH и в итоге блокирует тот же IP, с которого работает. Если агент запускается на вашем ноутбуке, вы теряете доступ вместе с ним.
Автор приводит пример из своего бенчмарка: Claude Opus 5.5 без дополнительных подсказок сам себя банил в 7 прогонов из 60. Ошибка не в «глупости» модели, а в том, что ей заранее не объяснили важную деталь: свой адрес нужно добавить в ignoreip до запуска fail2ban.
Как работает автоматический откат
Основа vps-forge — скрипт deadman. Перед любой правкой SSH, файрвола, sudo или PAM агент запускает arm: сохраняет текущие конфиги и ставит systemd-таймер на 5 минут. Потом он вносит изменения, а затем обязан проверить доступ новым подключением без ControlMaster. Если вход есть, таймер снимается командой disarm.
Если что-то пошло не так, агенту уже не нужно ничего делать: через 5 минут система сама возвращает старую конфигурацию. Важная часть — откат должен работать даже после перезагрузки, поэтому при arm включается отдельный юнит, который видит незавершённые изменения и откатывает их при старте сервера.
Какие ошибки пришлось учесть
На практике оказалось, что простого скрипта недостаточно. Таймер из systemd-run живёт только в памяти, поэтому после перезагрузки его нужно восстанавливать отдельно. Ещё одна ловушка — nftables: если откатывать правила слишком грубо, можно случайно снести не только новое правило, но и ufw, баны fail2ban и цепочки Docker.
Были и более приземлённые проблемы. На русской локали ufw отвечает строкой «Состояние: активен», а не Status: active, поэтому скрипт без настройки LC_ALL=C неверно определял состояние файрвола. Отдельно пришлось решать вопрос с баном IP: конфиги могут вернуться, но адрес всё ещё останется в бан-листе fail2ban, поэтому откат дополнительно разбанивает клиента SSH.
Что показал бенчмарк и кому это полезно
Проверку навыка запускали в настоящих виртуальных машинах с Debian 12 и 13, Ubuntu 22.04, 24.04 и 26.04. Всего было 120 прогонов Claude Opus 5.5 по четырём сценариям: от настройки продакшен-сервера под Docker до переноса SSH и установки fail2ban.
Без навыка результат был в диапазоне 79–92 баллов из 100, а с vps-forge — 99 или 100. При этом автор честно отмечает: сам автоматический откат в этом бенчмарке ни разу не понадобился, но он нужен как страховка на редкий случай. Для тех, кто администрирует VPS, это полезная идея: агент может помогать с рутинными правками, но сервер лучше страховать так, чтобы одна ошибка не превращалась в ручное восстановление через веб-консоль провайдера.