Быстрый старт Linux Обновлено 8 мин Ubuntu, Debian, Linux, VPS

cloud-init для VPS: пользователи, SSH-ключи и базовая настройка

Как использовать cloud-init при создании VPS: пользователи, SSH-ключи, пакеты, firewall-подготовка, IPv6, repeatable setup и риски шаблонов.

VPScloud-initSSHusersautomation
Содержание
Короткоcloud-init хорош для повторяемого старта VPS, но в userdata нельзя бездумно класть приватные ключи, секреты и непроверенные команды.

cloud-init позволяет создать VPS уже с пользователями, SSH-ключами и базовыми пакетами. Это особенно полезно при переносе между локациями и провайдерами.

Что автоматизировать

Автоматизируйте пользователей, публичные SSH-ключи, обновление пакетов, базовые утилиты и минимальные конфиги. Секреты и приватные ключи храните отдельно.

Root и SSH-ключи

Опишите sudo-пользователя и его ssh_authorized_keys. После старта проверьте вход и только потом применяйте жесткие правила sshd.

IPv4/IPv6 и firewall

cloud-init может подготовить пакеты UFW, но включать firewall надо аккуратно: правило SSH должно существовать до enable, а IPv6 нужно проверить отдельно.

systemd и Docker

Не превращайте userdata в огромный install script. Лучше установить зависимости, положить unit или compose и затем проверять статус через systemd и docker logs.

Диагностика запуска

Если ключ не применился, смотрите логи cloud-init, консоль провайдера и пользователя по умолчанию. Ошибка YAML может silently сломать ожидаемую настройку.

Перенос и репутация

Один и тот же cloud-init файл помогает поднять сервер в другой локации. Но IP-репутацию, доступность UDP и правила провайдера он не гарантирует — это проверяется отдельно.

Проверено на практике

  • Дата проверки: 2026-05-12
  • Среда: Ubuntu/Debian Linux, VPS-провайдеры с публичным IPv4/IPv6
  • Версии: актуальная документация Ubuntu/Debian/OpenSSH/systemd/UFW на дату проверки

Мини-чеклист

  • Добавить публичные SSH-ключи
  • Создать sudo-пользователя
  • Не хранить приватные ключи в userdata
  • Проверить cloud-init logs
  • Тестировать шаблон на новом VPS

Частые ошибки

  • Класть секреты в cloud-init
  • Писать длинный неидемпотентный script
  • Забывать YAML-отступы
  • Включать firewall без SSH allow
  • Считать cloud-init заменой мониторинга

Источники и документация

FAQ

Где задаются SSH-ключи в cloud-init?

Обычно в ssh_authorized_keys для пользователя или через профиль провайдера, который cloud-init применяет при первом запуске.

Можно ли запускать установку Docker из cloud-init?

Можно, но для надежности лучше держать сценарий коротким и проверять результат после старта.

Почему cloud-init не применился повторно?

cloud-init обычно выполняет часть модулей при первом boot. Для повторного запуска нужны специальные команды и осторожность.

Хотите перейти сразу к рабочему доступу?

Если сценарий уже ясен и не хочется проходить все шаги вручную, оформите доступ и проверьте подключение на своем устройстве.

Оформить доступ

Дальше по теме

Связанные статьи