Development
July 14, 2025

Создание и настройка VPS

Привет, дорогой читатель! В этой статье оставлю памятку для тебя и себя о том, как настроить VPS после его покупки.

Предисловие

Как-то раз автор забыл продлить сервер в хостинге. Хостинг такой сервер удалил... Пришлось купить новый. Исходим из следующих допущений:

  • Сервер под управлением Ubuntu (актуальной версии).
  • Есть Root доступ к серверу через SSH и авторизацией с помощью пароля.

Что требуется сделать:

  • Создать нового пользователя на сервере с правами Администратора.
  • Настроить авторизацию к серверу от имени нового пользователя с авторизацией по сертификату.
  • Установить Docker

Подключение к серверу и изменение пароля

У вас должны быть IP адрес сервера и пароль для Root

Подключение:

ssh root@<ip-адрес>

Смена пароля root:

passwd

Создание нового пользователя

Создать нового пользователя (например, "newuser"). При необходимости, установить пароль для этого пользователя.

sudo adduser newuser

Добавить пользователя в группу администраторов (sudo)

sudo usermod -aG sudo newuser

Настройка авторизации с помощью сертификатов

Сгенерировать сертификат на локальном компьютере.

ssh-keygen -t ed25519 -C "newuser@mypc"

В процессе выполнить:

  • Задать пароль для сертификата.
  • Задать название файла. Например "newuser"

Подключиться к серверу от имени root. Далее выполнить:

  • Перейти в директорию нового пользователя
cd ~newuser/
  • Создать директорию .ssh
mkdir .ssh
  • Создать и открыть файл
nano authorized_keys
  • Вставить содержимое файла newuser.pub в файл authorized_keys на отдельной строке
  • Настроить права
sudo chown -R newuser:newuser /home/newuser/.ssh
sudo chmod 700 /home/newuser/.ssh
sudo chmod 600 /home/newuser/.ssh/authorized_keys

Авторизация нового пользователя

В директории, где сгенерирован сертификат для нового пользователя выполнить подключение к серверу

ssh newuser@<ip-адрес> -i ./newuser

Настройка SSH

Изменение порта ssh

Открыть файл sshd_config

sudo nano /etc/ssh/sshd_config

Отредактировать и изменить порт для ssh. Например,

Сохранить и выйти: Ctrl-X + Y

Выполнить "sudo systemctl edit ssh.socket" и добавить:

[Socket]
  ListenStream=
  ListenStream=0.0.0.0:45654
  ListenStream=[::]:45654  

Выполнить команды

sudo systemctl daemon-reload
sudo systemctl restart ssh.socket
sudo systemctl status ssh.socket

Проверить, что все хорошо: "sudo ss -tlnp | grep 45654"

Настроить ufw (если применимо)

Выполнить

sudo ufw allow 45654/tcp
sudo ufw allow 443/tcp
sudo ufw reload

Дополнительно

  • Установка: sudo apt install ufw -y
  • Включение: sudo ufw enable
    • Обязательно: sudo systemctl enable ufw
  • sudo ufw delete allow 22/tcp - удаление

Теперь подключение будет следующим (ВАЖНО!):

ssh newuser@<IP-адрес> -i ./newuser -p 45654

Отключение IPv6

Открыть файл sysctl.conf

sudo nano /etc/sysctl.conf 

В конец файла добавить

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Выполнить

sudo sysctl -p

Отключить авторизацию через пароль и авторизацию Root

Открыть файл sshd_config

sudo nano /etc/ssh/sshd_config

В файле отредактировать следующие поля:

  • PubkeyAuthentication yes
  • PasswordAuthentication no
  • PermitEmptyPasswords no
  • PermitRootLogin no

В конец файла добавить

Match User newuser
  PasswordAuthentication no

Перезапуск sshd

Выполнить:

sudo systemctl restart sshd

Установка Docker

Выполнить шаги инструкции "Install using the apt repository", см: https://docs.docker.com/engine/install/ubuntu/

Добавить нового пользователя в группу docker

Выполнить

sudo usermod -aG docker newuser

Проверить группы для нового пользователя

groups newuser

Перезагрузка

Выполнить

sudo reboot

Подключение

ssh newuser@<IP-адрес> -i ./newuser -p 45654

Заключение

На этом всё. Всем добра! См. комментарии.