Часть 01. От VDS до SSH — создание и первичный вход
Часть 01. От VDS до SSH: Настройка первичного доступа
«Нет ничего проще, чем завести себе удалённый компьютер. Трудности начинаются в тот момент, когда вы пытаетесь им воспользоваться.» — Воланд
Глава 1. Создание VDS
Первый шаг — создание сервера у провайдера. Выбираем чистый образ Ubuntu 24.04 LTS.
Провайдер выдаёт:
- IP-адрес:
XX.XX.XX.XX - Пароль root: выдаётся при создании сервера
На Ubuntu 24.04 LTS OpenSSH-сервер предустановлен и уже запущен. По умолчанию разрешён вход пользователя root по паролю — этим мы и воспользуемся для первого подключения.
Подключаемся с локального компьютера по SSH напрямую под root:
ssh root@XX.XX.XX.XX
Ожидаемый вывод при первом подключении:
The authenticity of host 'XX.XX.XX.XX (XX.XX.XX.XX)' can't be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Подтверждаем подлинность хоста — вводим yes. После этого SSH запрашивает пароль:
root@XX.XX.XX.XX's password:
Вводим пароль root, полученный от провайдера. После успешного входа видим приглашение командной строки:
root@srv02-Helsinki:~#
Воланд, наблюдая за первым входом по SSH:
«Неплохо. Первый ключ к шкатулке уже у нас. Но пароль, переданный через интернет, — это как записка под дверью. Надо менять.»
Глава 2. SSH: что это и зачем
SSH (Secure Shell) — протокол для удалённого управления сервером через зашифрованное соединение. Вместо того чтобы каждый раз заходить в веб-консоль провайдера, мы подключаемся к серверу одной командой из терминала на своём компьютере.
Знакомимся с командой systemctl status — универсальным способом проверить состояние любой службы. В будущем она не раз пригодится для диагностики:
systemctl status ssh
Ожидаемый вывод:
● ssh.service — OpenBSD Secure Shell server
Loaded: loaded (/usr/lib/systemd/system/ssh.service; enabled; preset: enabled)
Active: active (running) since Tue 2025-01-14 12:00:00 MSK; 1min ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 1234 (sshd)
Tasks: 1 (limit: 1111)
Memory: 1.2M
CPU: 10ms
CGroup: /system.slice/ssh.service
└─1234 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
Пояснения к выводу:
Active: active (running)— служба работаетenabled— добавлена в автозагрузкуMain PID: 1234— идентификатор процесса SSH-демонаMemory: 1.2M— сколько памяти потребляет служба
Проверяем, что SSH слушает 22-й порт, с помощью ss (socket statistics):
ss -tlnp | grep :22
Флаги команды:
-t— только TCP-сокеты-l— только слушающие (listening) сокеты-n— числовой вывод (без преобразования в имена)-p— показать процесс, владеющий сокетом| grep :22— фильтр по порту 22
Ожидаемый вывод:
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1234,fd=3))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=1234,fd=4))
Пояснения к выводу:
LISTEN— порт открыт и ожидает соединений0.0.0.0:22— слушает на всех сетевых интерфейсах (IPv4)[::]:22— то же самое для IPv6pid=1234— процесс SSH, обслуживающий порт
Воланд, просматривая вывод
ss -tlnp:
«Двадцать второй порт. Стандартный и открытый настежь. Все сканеры интернета уже стучатся в него. Но пока ключи не сменены — это неизбежное зло.»
Глава 3. Создание пользователя user01 и права sudo
Работать под root — смертельный грех администратора. Создаём штатного пользователя user01:
useradd -m -s /bin/bash user01
Параметры команды:
-m— создать домашний каталог/home/user01-s /bin/bash— установить оболочку Bash
Команда выполняется без вывода при успешном создании.
Задаём пароль пользователю user01:
passwd user01
Ожидаемый вывод:
New password:
Retype new password:
passwd: password updated successfully
Пароль вводится дважды (символы не отображаются).
Добавляем пользователя в группу sudo для административных прав:
usermod -aG sudo user01
Пояснения к ключам:
-a— добавить в группу, не удаляя из других-G sudo— указать группуsudo
Команда выполняется без вывода.
Проверяем работу sudo. Переключаемся на пользователя user01:
su - user01
Ожидаемый вывод:
user01@srv02-Helsinki:~$
Проверяем, что sudo работает:
sudo whoami
Ожидаемый вывод (после ввода пароля user01):
[sudo] password for user01:
root
Команда whoami через sudo возвращает root — права администратора работают.
Возвращаемся в сессию root:
exit
Ожидаемый вывод:
logout
root@srv02-Helsinki:~#
Воланд, оглядывая нового пользователя:
«Итак, у нас появился гражданин user01 — смертный с правами sudo. По крайней мере, теперь он не сможет снести систему случайной опечаткой без явного предупреждения.»
Глава 4. Подключение по SSH под user01
Выходим из текущей сессии root и подключаемся заново, но уже под user01:
exit
На локальном компьютере подключаемся к серверу под новым пользователем:
ssh user01@XX.XX.XX.XX
Ожидаемый вывод: SSH запрашивает пароль user01.
user01@XX.XX.XX.XX's password:
После успешного входа:
Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-xx-generic x86_64)
...
user01@srv02-Helsinki:~$
Проверяем доступность sudo:
sudo whoami
Ожидаемый вывод:
[sudo] password for user01:
root
Воланд, глядя на успешный вход по сети:
«Первый мост проложен. Передача паролей по сети — это моветон, но для начального шага сойдёт. Теперь нужно немедленно переходить к ключам и запечатать парольные входы.»
Финал части: Резюме Воланда
Воланд подводит итог первой части:
«Сервер развёрнут, пользователь user01 создан и наделён полномочиями sudo, SSH работает. Первичный доступ получен, но замок на дверях пока стандартный. В следующей части мы изгоним пароли навсегда!»
Комментарии
Комментарии пока не подключены.