От VDS до SSH: настройка первичного доступа

«Нет ничего проще, чем завести себе удалённый компьютер. Трудности начинаются в тот момент, когда вы пытаетесь им воспользоваться.»

Введение

Настоящее руководство охватывает цепочку действий от момента регистрации у провайдера VDS/VPS до первого подключения по SSH под штатным пользователем, не root. Рассматривается универсальный случай: образ Ubuntu 24.04 LTS, провайдер — любой, панель — неважна.

Все действия последовательны. Пропускать шаги не рекомендуется — сервер, в отличие от кошки, обычно не приземляется на четыре лапы, если его столкнуть с лестницы.

Предположения: аккаунт у провайдера создан и оплачен, VDS развёрнут, доступен через веб-консоль провайдера (noVNC) с правами root.


Раздел 1. Создание сервера в панели провайдера

1.1. Выбор образа

В панели управления провайдера создаётся новый сервер (иногда называется «инстанс», «дроплет», «машина»). При создании выбираются следующие параметры:

Параметр Значение
ОС Ubuntu 24.04 LTS (чистый образ, не minimal)
Регион Ближайший к географическому положению пользователей
Тариф Определяется вашими потребностями

Примечание: Образ должен быть чистым («stock»), а не «hardened», «pre-configured» или «panel-ready». Иначе поведение системы может отличаться от описанного в данном руководстве.

1.2. SSH-ключи при создании

На этапе создания сервера провайдер обычно предлагает:

  • Загрузить свой SSH-публичный ключ;

  • Сгенерировать ключ за вас;

  • Ввести пароль для root.

Выберите: пароль для root. Ключи будут настроены в отдельном руководстве. Если интерфейс провайдера не позволяет выбрать «только пароль» — задайте и то, и другое. Пароль root потребуется для входа через веб-консоль (noVNC).

1.3. Развёртывание

После нажатия кнопки «Создать» провайдер разворачивает сервер. Обычно это занимает от 30 секунд до 3 минут. После завершения сервер получает:

  • Публичный IP-адрес (например, 203.0.113.10);

  • Пароль root (выдан при создании, если вы задаёте его вручную, или прислан провайдером по электронной почте);

  • Доступ к веб-консоли (noVNC) — кнопка «Console», «Terminal» или «VNC» в панели провайдера.

«Создать сервер, — заметил Коровьев, вращая трёхпалой рукой колёсико мыши, — дело нехитрое. Нажал кнопку — и вот тебе кусок железа в Амстердаме, Берлине или на Луне. А уж что с ним делать дальше — это, гражданин, уже ваша головная боль.»


Раздел 2. Первичный вход через веб-консоль (noVNC)

2.1. Что такое веб-консоль провайдера

Веб-консоль (noVNC) — это виртуальный терминал, отображающийся прямо в браузере через панель управления провайдера. Он подключается непосредственно к виртуальной машине, минуя сеть и SSH. Это ваш «аварийный люк»: если вы сломали SSH, фаервол или вообще всё на свете — веб-консоль всё равно даст доступ.

Веб-консоль в панели провайдера не зависит от сетевого доступа и SSH. Она подключается к эмуляции монитора сервера так, как будто вы сидите перед ним с клавиатурой.

2.2. Вход

  1. В панели управления провайдера найдите ваш сервер в списке и откройте его страницу.

  2. Найдите ссылку или кнопку с названием Console, NoVNC, VNC, Web Terminal или Серверная консоль.

  3. Откроется окно с чёрным экраном и строкой приглашения входа (или с графическим экраном входа, если сервер установлен с графической оболочкой).

Если видите строку приглашения:

psjsrv01 login:

Введите:

psjsrv01 login: root
Password: <пароль, заданный при создании>

Примечание: При вводе пароля в терминале символы не отображаются — ни звёздочками, ни точками, никак. Это не баг, это так задумано. Курсор не двигается. Это нормально. Набирайте пароль слепо и нажимайте Enter.

После успешного входа вы увидите приглашение командной строки:

root@psjsrv01:~#

Воланд поморщился:
«Вводить пароль при первом подключении — всё равно что стучаться в дверь собственного дома с криком „Я вернулся!" Дверь откроется. А кто ещё услышал — неизвестно. Но начинать с чего-то надо.»


Раздел 3. Проверка и установка SSH

3.1. Что такое SSH

SSH (Secure Shell) — криптографический сетевой протокол для удалённого управления операционной системой и безопасной передачи данных. Проще говоря: это способ попасть на сервер через терминал, не открывая веб-консоль, по сети.

Без SSH каждый раз придётся заходить через веб-консоль — медленно, неудобно, невозможно передать файлы. На сервере должен быть установлен и запущен SSH-сервер.

В Ubuntu за SSH-сервер отвечает пакет openssh-server.

3.2. Проверка наличия SSH-сервера

Проверьте, работает ли служба sshd (SSH daemon — фоновый процесс, обрабатывающий SSH-подключения):

systemctl status sshd 2>/dev/null || systemctl status ssh

Примечание: В Ubuntu служба может называться sshd или ssh. Один из двух вариантов найдётся.

Вариант A: служба активна — SSH установлен

Если вывод содержит строку Active: active (running), значит SSH уже работает. Переходите к Разделу 4.

Вариант B: служба не найдена — SSH не установлен

Если вывод содержит Unit sshd.service could not be found или Unit ssh.service could not be found — сервер не имеет SSH-сервера. Необходимо установить его.

3.3. Установка SSH-сервера

Обновите списки пакетов и установите openssh-server:

apt update
apt install -y openssh-server

После установки необходимо включить и запустить службу:

systemctl enable --now ssh

Флаг --now выполняет две операции за одну: enable (запуск при старте системы) и start (непосредственный запуск сейчас).

Теперь проверьте, что служба запущена:

systemctl status ssh

Ожидаемый вывод (ключевые строки):

● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/usr/lib/systemd/system/ssh.service; enabled; preset: enabled)
     Active: active (running)
   Main PID: <число> (sshd)
     ...

3.4. Проверка порта

Убедитесь, что SSH слушает порт 22 (стандартный):

ss -tlnp | grep :22

Ожидаемый вывод:

LISTEN 0  128  0.0.0.0:22  0.0.0.0:*  users:(("sshd",pid=<N>,fd=<N>))

Это означает: sshd принимает подключения на всех сетевых интерфейсах (0.0.0.0) на порту 22.

Воланд, просматривая вывод ss -tlnp:
«Двадцать второй порт. Стандартный, как ботинки в магазине. Открыт настежь, и каждый сканер в интернете знает об этом. Но пока что двери ещё не заперты — и ключи не сменены. Мы исправим это в своё время.»

Раздел 4. Создание пользователя uservpn

4.1. Почему не работать под root

Запускать всё от root — это как ходить по канату без страховки: пока всё получается, кажется, что это безопасно. Но достаточно одной ошибки, и...

Создадим обычного пользователя с правами sudo — возможностью вызывать отдельные команды от имени root с предварительной проверкой подлинности.

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

Команды выполняются от root (вы сейчас вошли как root через веб-консоль):

useradd -m -s /bin/bash uservpn
passwd uservpn

Запросит пароль для uservpn: введите надёжный пароль дважды. Этот пароль будет использоваться для входа через SSH.

Пояснение параметров:

Флаг Значение
-m Создать домашнюю директорию /home/uservpn
-s /bin/bash Установить Bash как оболочку по умолчанию

4.3. Настройка sudo с паролем

Добавьте пользователя в группу sudo:

usermod -aG sudo uservpn

Группа sudo в Ubuntu по умолчанию настроена так, что её члены могут выполнять команды от root с подтверждением своим паролем (не паролем root).

Пример проверки (от uservpn):

Переключитесь на нового пользователя:

su - uservpn

Проверьте sudo:

sudo whoami

Запросит пароль uservpn. Введите его. Ожидаемый вывод:

root

Это означает: sudo работает, uservpn может выполнять административные команды.

Вернитесь к root:

exit

Коровьев хмыкнул:
«Итак, у нас появился гражданин по имени uservpn — существо с правами, но и с ограничениями. Ровно то, что нужно, чтобы не натворить бед по неосторожности.»

Раздел 5. Подключение по SSH с рабочей станции

5.1. Что происходит при подключении

Теперь, когда openssh-server работает, а пользователь создан, вы можете подключиться с вашего компьютера к серверу по сети.

Для этого нужен:

  • Публичный IP-адрес сервера (из панели провайдера);

  • Логин uservpn;

  • Пароль, заданный в разделе 4.2;

  • Порт 22 (по умолчанию).

5.2. Подключение с компьютера

На вашем компьютере откройте терминал и выполните:

ssh uservpn@<IP-АДРЕС-СЕРВЕРА>

Замените <IP-АДРЕС-СЕРВЕРА> на реальный адрес вашего сервера. Пример:

ssh uservpn@203.0.113.10

При первом подключении вы увидите сообщение:

The authenticity of host '203.0.113.10 (203.0.113.10)' can't be established.

При первом подключении

При первом подключении к серверу вы увидите сообщение:

The authenticity of host '<IP-АДРЕС-СЕРВЕРА> (<IP-АДРЕС-СЕРВЕРА>)' can't be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Это не ошибка. SSH впервые «видит» этот сервер и предупреждает: «Я запомню его ключ, но вы должны подтвердить, что это тот самый сервер, а не подставной». Введите yes и нажмите Enter.

После подтверждения появится запрос пароля:

uservpn@203.0.113.10's password:

Введите пароль пользователя uservpn. После успешного входа вы увидите приглашение:

uservpn@psjsrv01:~$

Обратите внимание на знак $ — это означает, что вы вошли как обычный пользователь (не root, у которого знак #).

5.3. Проверка sudo через SSH

Проверьте, что sudo работает при подключении через SSH (а не только через веб-консоль):

sudo whoami

Ожидаемый вывод:

root

Воланд, наблюдая за процессом входа по SSH:
«Пароль. По сети. Каждый пакет может быть перехвачен, каждый символ — прочитан. Мы пока так делаем, потому что начинать надо с чего-то простого. Но, уверяю вас, следующая глава будет гораздо интереснее.»

Раздел 6. Итоги

На данном этапе мы имеем:

Что Статус
Сервер развёрнут
Веб-консоль (noVNC) доступна
SSH-сервер работает (порт 22)
Пользователь uservpn создан
uservpn имеет sudo с паролем
Подключение по SSH под uservpn работает

Следующее руководство (в перспективе): настройка SSH — смена порта, SSH-ключи, отключение входа по паролю, отключение root.


Конец документа. Читавшему — свободы, вошедшему — sudo, забывшему пароль — /etc/shadow ему в руки и удачи.