К содержанию
Рабочий стол

Базовая настройка нового VPS: пользователь, защита входа, обновления

Свежий сервер хостер отдаёт с одним входом: root и пароль или ключ из письма. Пока вы читаете письмо, на адрес уже стучатся боты, которые подбирают пароль к root. Ниже порядок действий для Ubuntu 24.04 LTS, который закрывает самое очевидное за полчаса: обновления, отдельный пользователь, вход по ключу и автоматические заплатки.

Команды рассчитаны на Ubuntu 24.04. Адрес 203.0.113.10 и имя deploy в примерах выдуманные, подставьте свои.

Настройка нового VPS: пять шагов от обновления пакетов и создания пользователя до SSH-ключа, запрета пароля и автообновлений
Пять шагов настройки нового сервера. Закрывать вход по паролю нужно только после проверки входа по ключу.

Шаг 1. Первый вход и обновления

Подключитесь с компьютера тем, что дал хостер. В Windows 10 и 11, macOS и Linux клиент ssh уже есть в терминале.

ssh root@203.0.113.10

При первом подключении клиент спросит, доверять ли отпечатку сервера. Сверьте его с тем, что показывает панель хостера, если она его выводит, и ответьте yes. Дальше обновите списки пакетов и сами пакеты:

apt update
apt upgrade -y
ls /var/run/reboot-required

Последняя команда нужна, чтобы узнать, просит ли система перезагрузку после обновления ядра. Если файл есть, выполните reboot, подождите минуту и войдите снова. Лучше сделать это сейчас, пока на сервере ничего не работает.

Шаг 2. Отдельный пользователь с sudo

Повседневная работа под root опасна тем, что система не переспрашивает: лишний пробел в команде удаления выполнится как есть. Заведите обычного пользователя и дайте ему право на sudo.

adduser deploy
usermod -aG sudo deploy

adduser спросит пароль и несколько необязательных полей. Пароль задайте длинный: он понадобится для sudo, даже когда вход по паролю будет выключен.

Шаг 3. SSH-ключ вместо пароля

Ключ состоит из двух файлов: закрытого, который остаётся у вас, и открытого, который кладут на сервер. Создайте пару на своём компьютере, не на сервере. Откройте новое окно терминала:

ssh-keygen -t ed25519 -C "vps-2026"

Согласитесь с путём по умолчанию и задайте парольную фразу: если файл кто-то скопирует, без неё он бесполезен. Открытая часть лежит в файле id_ed25519.pub в папке .ssh вашего профиля. Закрытый файл id_ed25519 никому не отправляют.

На Linux и macOS открытый ключ копирует одна команда:

ssh-copy-id deploy@203.0.113.10

В Windows этой команды в системе нет, поэтому сделайте вручную. Откройте файл .pub в блокноте и скопируйте строку целиком. Затем на сервере, уже под пользователем deploy (su - deploy или новый вход по паролю):

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

В nano вставьте строку, сохраните сочетанием Ctrl+O и выйдите через Ctrl+X. Права 700 и 600 не формальность: при более широких правах сервер может отказаться читать ключи.

Теперь проверка, не закрывая первое окно с root:

ssh deploy@203.0.113.10
sudo whoami

Вход должен пройти без пароля сервера (запросить могут только фразу от ключа), а sudo whoami ответить root. Пока это не сработало, дальше не идите.

Шаг 4. Запрет пароля и root

Основной файл настроек /etc/ssh/sshd_config лучше не править: обновления пакета могут с ним конфликтовать. В Ubuntu 24.04 рядом есть каталог /etc/ssh/sshd_config.d/, куда кладут свои короткие файлы. Тут есть ловушка. Сервер читает их по алфавиту, и для каждого параметра действует первое найденное значение. На многих образах уже лежит файл 50-cloud-init.conf со строкой PasswordAuthentication yes. Ваш файл с именем 99-… прочитается позже, и пароль останется включённым. Поэтому назовите свой файл с меньшим номером:

sudo nano /etc/ssh/sshd_config.d/01-vhod.conf
PasswordAuthentication no
PermitRootLogin no

Проверьте синтаксис, примените настройки и убедитесь, что они действуют, а не просто записаны:

sudo sshd -t
sudo systemctl reload ssh
sudo sshd -T | grep -E "passwordauthentication|permitrootlogin"

Вывод должен содержать passwordauthentication no и permitrootlogin no. Если видите yes, значит, какой-то другой файл в каталоге выигрывает по порядку: grep -r PasswordAuthentication /etc/ssh/ покажет какой. Прежде чем закрывать любое окно, откройте третье и войдите в него заново по ключу. Если не получилось, вы ещё можете исправить файл из уже открытой сессии.

Шаг 5. Автоматические обновления безопасности

Заплатки к SSH и ядру выходят, когда вы о сервере не думаете. Пакет unattended-upgrades ставит их сам. На многих образах он уже есть, но включить его не помешает:

sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
sudo unattended-upgrade --dry-run --debug

Первые две команды ставят и включают пакет, третья показывает, какие обновления он применил бы, не трогая систему. В стандартной настройке он берёт только обновления безопасности и сервер сам не перезагружает: после обновления ядра файл /var/run/reboot-required появится, и перезагрузку вы делаете сами в удобный момент. Автоматическую перезагрузку включайте, только если ночной простой сервера вас не смущает.

Что ещё можно сделать сразу

Базовая защита этим не исчерпана. Следующими шагами обычно идут файрвол ufw (сначала sudo ufw allow OpenSSH, потом sudo ufw enable, иначе отрежете себе вход), часовой пояс через timedatectl и снимок диска в панели хостера, который пригодится перед любыми крупными изменениями.

ПроверкаКомандаОжидаемый ответ
Вход по ключуssh deploy@203.0.113.10Без пароля сервера
Права sudosudo whoamiroot
Пароль выключенsudo sshd -T | grep passwordauthenticationpasswordauthentication no
Root закрытsudo sshd -T | grep permitrootloginpermitrootlogin no
Автообновленияsystemctl status unattended-upgradesactive

Когда всё это не нужно

Эти полчаса нужны, если сервер вы арендуете для своих задач: бот, сайт, база. Если же цель только в том, чтобы приложения на вашем компьютере выходили с зарубежного адреса, администрировать сервер не придётся. Чем отличаются оба случая, показано в статьях «VPS на Ubuntu или подписка» и «Прокси, VPS или подписка». Подписка Siberian работает через приложение: консоли, root и SSH у подписчика нет, сервер обслуживаем мы.

Подключить

Частые вопросы

Можно ли оставить работу под root, если сервер только для проб?

Технически можно, но лучше не привыкать. Под root любая опечатка в команде выполняется без подтверждения, а учётную запись root перебирают в первую очередь. Отдельный пользователь с sudo занимает пять минут и снимает обе проблемы.

Что делать, если закрытый ключ потерян, а вход по паролю уже выключен?

Войти через консоль в панели хостера: она работает не через SSH и пароль к ней не отключается настройками сервера. У большинства хостеров есть и режим восстановления. Заранее проверьте, что консоль в вашей панели открывается, и храните копию ключа отдельно от компьютера.

Нужно ли менять порт SSH с 22 на другой?

Защиты это не добавляет, сканер найдёт SSH на любом порту. Перенос лишь убирает из журнала часть шума. В Ubuntu 24.04 порт задаётся иначе, чем в прежних выпусках, через сокет systemd, поэтому новичку проще оставить 22 и отключить пароль.

Автообновления могут сломать сервер?

В стандартной настройке unattended-upgrades ставит только обновления безопасности и сам сервер не перезагружает. Риск небольшой, но перед важными изменениями делайте снимок диска в панели хостера.

Нужна ли такая настройка, если нужен только зарубежный адрес для программ на компьютере?

Нет. Это работа администратора собственного сервера. Подписка Siberian работает через приложение на вашем устройстве, консоли и SSH в ней нет, а сервер настраиваем и обновляем мы.