Покупка VPS, доменного имени, привязка DNS и настройка по SSH
Что понадобится
- VPS (Virtual Private Server) — виртуальный сервер с полным доступом (root). Подойдёт любой провайдер: Timeweb Cloud, Selectel, REG.RU, Beget, DigitalOcean, Hetzner и др. Для блога хватит минимальной конфигурации: 1 vCPU, 1–2 ГБ RAM, 15–25 ГБ SSD.
- Доменное имя — например,
myblog.ru, у любого регистратора. - SSH-клиент — встроен в Linux, macOS и Windows 10+ (
sshв терминале или PowerShell).
При создании сервера выберите Ubuntu 24.04 LTS — все команды курса даны для неё.
Как это будет работать
Браузер ──▶ DNS: myblog.ru → 203.0.113.10
──▶ VPS 203.0.113.10
NGINX (80/443, HTTPS, статика, медиа)
└──▶ Gunicorn (Django)
└──▶ PostgreSQL
В этом модуле мы соберём всю цепочку.
DNS: привязка домена
В панели регистратора (или DNS-хостинга) создайте записи:
| Тип | Имя | Значение |
|---|---|---|
A |
@ |
203.0.113.10 (IP вашего VPS) |
A |
www |
203.0.113.10 |
@ — сам домен (myblog.ru), www — поддомен www.myblog.ru. Вместо второй A-записи можно создать CNAME www → myblog.ru.
Изменения DNS распространяются от нескольких минут до суток. Проверить:
nslookup myblog.ru
dig +short myblog.ru
Подключение по SSH
ssh root@203.0.113.10
При первом подключении SSH спросит, доверяете ли вы серверу (yes), и попросит пароль из письма провайдера.
Обновление системы
apt update && apt upgrade -y
Сразу настроим часовой пояс:
timedatectl set-timezone Europe/Moscow
Отдельный пользователь
Работать постоянно под root опасно — одна ошибка может сломать систему. Создадим пользователя с правами sudo:
adduser deploy
usermod -aG sudo deploy
SSH-ключи
На своём компьютере создайте пару ключей (если её ещё нет):
ssh-keygen -t ed25519 -C "you@example.com"
Появятся два файла в ~/.ssh/: id_ed25519 (приватный — никому не отдавайте!) и id_ed25519.pub (публичный — его кладут на серверы).
Скопируйте публичный ключ на сервер:
ssh-copy-id deploy@203.0.113.10
На Windows без ssh-copy-id — вручную добавьте содержимое id_ed25519.pub в файл /home/deploy/.ssh/authorized_keys на сервере.
Теперь вход без пароля:
ssh deploy@203.0.113.10
Удобно добавить хост в ~/.ssh/config:
Host myblog
HostName 203.0.113.10
User deploy
и подключаться командой ssh myblog.
Защита SSH
Убедившись, что вход по ключу работает, отключите вход под root и по паролю:
sudo nano /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
sudo systemctl restart ssh
Не закрывайте текущую сессию
Перед перезапуском SSH откройте второй терминал и проверьте, что вход по ключу работает. Иначе можно потерять доступ к серверу (тогда поможет только веб-консоль провайдера).
Файрвол
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status
Позже откроем порты 80 и 443 для NGINX. Для защиты от перебора можно поставить fail2ban:
sudo apt install fail2ban -y
Итог
- VPS с Ubuntu 24.04 + домен; A-записи
@иwwwуказывают на IP сервера. - Подключение —
ssh user@IP; работаем под отдельным пользователем сsudo. - Вход только по SSH-ключам, root и пароли отключены.
- Файрвол
ufwпропускает только нужные порты.
Практика решено 0 из 6
Какая DNS-запись связывает доменное имя с IPv4-адресом сервера?
Какой командой подключиться по SSH к серверу 203.0.113.10 под пользователем root?
Расставьте шаги первичной настройки сервера в правильном порядке.
-
Запретить вход root и по паролю в
/etc/ssh/sshd_config, перезапустить ssh -
Скопировать свой SSH-ключ:
ssh-copy-id deploy@IP -
Создать пользователя:
adduser deployиusermod -aG sudo deploy -
Обновить систему:
apt update && apt upgrade -y -
Подключиться под root:
ssh root@IP -
Включить файрвол:
ufw allow OpenSSHиufw enable
Почему вход по SSH-ключам лучше входа по паролю?
Какой командой создать новую пару SSH-ключей современного типа ed25519 на своём компьютере?
Арендуйте VPS (подойдёт минимальный тариф: 1 CPU, 1–2 ГБ RAM, Ubuntu 24.04), подключитесь по SSH, создайте
пользователя deploy с sudo и войдите под ним по ключу. Выполните whoami и вставьте вывод.
Войдите, чтобы отмечать пройденные уроки.