Позволить ИИ Сделать Это

Мне нужен был dev-сервер: VM с SSH-доступом и установленными инструментами разработки. Я описал Claude Code, что мне нужно, и позволил ему заняться настройкой.

Промпт

Я попросил VM на Vultr с 8 ядрами и 32ГБ RAM, доступную только через Tailscale, с постоянными сессиями, которые переживают обрывы сети.

Что Построил Claude Code

1. Провизионировал VM через API Vultr

Он создал экземпляр 8 ядер/32ГБ с Ubuntu, дождался IP, затем подключился по SSH как root.

2. Укрепил SSH

Port 49152                    # Случайный высокий порт
PermitRootLogin no
PasswordAuthentication no
ListenAddress 100.x.x.x       # Только интерфейс Tailscale

Только аутентификация по ключу, слушает только на интерфейсе Tailscale.

3. Настроил три уровня файрвола

4. Установил Tailscale с включённым SSH

curl -fsSL https://tailscale.com/install.sh | sh
tailscale up --ssh --authkey=$TAILSCALE_KEY

Это создаёт второй SSH-путь через встроенный SSH-сервер Tailscale, независимый от OpenSSH.

5. Установил dev-стек

Node.js (через nvm), Python (через pyenv), Docker и общие инструменты. Настроил Docker для работы без sudo.

6. Настроил постоянные сессии с tmux

Скрипт запуска, который автоматически переподключается к существующей сессии, чтобы обрывы сети не убивали работающие процессы.

7. Создал локальные скрипты управления

Скрипты dev-start и dev-stop на моём ноутбуке, которые запускают и останавливают VM через API Vultr.

Блокировка

После завершения Claude Code проверил, что вход под root отключён, попытавшись подключиться по SSH как root. Вход не удался. fail2ban заметил неудачные попытки и забанил нас.

Claude Code настроил SSH Tailscale как вторичный путь. Он использовал tailscale ssh, чтобы вернуться, и выполнил:

fail2ban-client set sshd unbanip 100.x.x.x

Настройка

Вам понадобится:

Храните API-ключи как переменные окружения и ссылайтесь на них по имени (например, $VULTR_API_KEY), чтобы секреты не появлялись в разговоре.

Пример промпта:

Создай VM с 8 ядрами на Vultr, заблокируй её так, чтобы она была доступна только через Tailscale, настрой Node/Python/Docker и дай мне скрипты для запуска и остановки.