Як встановити пароль root на VPS: Debian, Ubuntu та Rocky Linux
Отримали VPS, а дата-центр надав логін звичайного користувача замість root? Якщо цей користувач має права sudo, встановити новий пароль root можна однією командою:
sudo passwd root
Нижче — повна інструкція: як увійти з початковим логіном, задати пароль root, за потреби дозволити прямий SSH-вхід і перевірити результат. Приклади розраховані на Debian 12/13, Ubuntu Server 22.04/24.04 та Rocky Linux 9/10 із systemd і OpenSSH.
Що потрібно знати про root і sudo
root — обліковий запис адміністратора Linux. Він уже існує в системі: створювати його через adduser не потрібно. sudo дозволяє початковому користувачу виконувати адміністративні команди.
Наприклад, OVHcloud видає VPS із користувачем debian, ubuntu або rocky залежно від ОС; точний логін міститься в листі про активацію. В інших дата-центрах назва може бути іншою. Сам логін ще не доводить наявності прав sudo.
Для налаштування сервера часто достатньо sudo або переходу до оболонки root:
sudo -i
Це не потребує встановленого пароля root. Повернутися до початкового користувача можна командою exit. Встановлення пароля root і дозвіл входу під root через SSH — дві окремі дії.
Перед зміною SSH: залиште поточне з’єднання відкритим до успішної перевірки нового входу. Прямий вхід root за паролем збільшує ризик підбору пароля. Для постійної роботи краще використовувати SSH-ключі та sudo; наступні кроки потрібні, якщо ви свідомо обрали доступ root за паролем. Директива PasswordAuthentication yes також дозволяє парольну автентифікацію іншим користувачам, якщо її не обмежують окремі правила.
1. Увійдіть під користувачем, якого надав дата-центр
Відкрийте термінал або SSH-клієнт. Замініть USERNAME на логін із листа, а SERVER_IP — на адресу вашого VPS:
ssh USERNAME@SERVER_IP
Приклади для типових образів OVHcloud:
| ОС | Команда підключення |
|---|---|
| Debian | ssh debian@SERVER_IP |
| Ubuntu | ssh ubuntu@SERVER_IP |
| Rocky Linux | ssh rocky@SERVER_IP |
Якщо використовується нестандартний порт, додайте -p PORT. Підключення може відбуватися за паролем або SSH-ключем. Якщо система вимагає змінити тимчасовий пароль початкового користувача, виконайте цю вимогу й підключіться повторно.
2. Встановіть новий пароль root
На Debian, Ubuntu та Rocky Linux команда однакова:
sudo passwd root
- Якщо з’явиться запит
[sudo] password for USERNAME:, введіть пароль початкового користувача. За налаштованого sudo без пароля цього запиту не буде. - На запит
New password:введіть новий пароль root. - На запит
Retype new password:повторіть новий пароль root.
Під час введення символи та зірочки не відображаються — це нормально. Використовуйте довгий унікальний пароль, збережений у менеджері паролів. Старий пароль root для цієї операції не потрібен.
Успішне завершення зазвичай виглядає так:
passwd: password updated successfully
У Rocky Linux формулювання може відрізнятися, наприклад passwd: all authentication tokens updated successfully.
Перевірте пароль усередині поточної SSH-сесії:
su -
whoami
Після su - введіть новий пароль root. Команда whoami має показати root. Потім виконайте exit, щоб повернутися до початкового користувача. Якщо вам потрібен лише пароль root або робота через sudo, на цьому можна завершити.
3. За потреби дозвольте SSH-вхід root за паролем
Спочатку створіть резервну копію налаштувань SSH. Команда збереже каталог із конфігурацією та ключами в окремій папці всередині /root; не публікуйте її вміст:
sudo cp -a /etc/ssh "/root/ssh-backup-$(date +%Y%m%d-%H%M%S)"
Відкрийте саме конфігурацію SSH-сервера — sshd_config, із літерою d:
sudo vi /etc/ssh/sshd_config
Розмістіть ці дві директиви на самому початку файла, перед Include та будь-яким блоком Match. Якщо вони вже розміщені на початку, змініть їхні значення:
PermitRootLogin yes
PasswordAuthentication yes
Для вставлення на початок у vi натисніть Esc, введіть gg, потім натисніть велику літеру O і вставте рядки. Для збереження натисніть Esc, введіть :wq і натисніть Enter. Якщо зручніше користуватися nano і він установлений, відкрийте файл через sudo nano /etc/ssh/sshd_config; збереження — Ctrl+O, Enter, вихід — Ctrl+X.
Рядки мають бути без символу # на початку. Значення prohibit-password або without-password забороняє парольний SSH-вхід root, а no забороняє його SSH-вхід узагалі.
Чому важливе місце рядків: OpenSSH зазвичай використовує перше отримане значення директиви. Файли /etc/ssh/sshd_config.d/*.conf, зокрема налаштування образу провайдера, можуть підключатися через Include раніше за решту основного файла. Тому просте додавання рядків унизу може не спрацювати. Окремі правила Match також можуть змінювати результат для конкретного підключення.
4. Перевірте конфігурацію перед застосуванням
Спочатку перевірте синтаксис:
sudo /usr/sbin/sshd -t
Якщо команда завершилася без повідомлень і помилки — перевірка пройшла. Якщо є помилка, виправте її перед наступним кроком. Далі подивіться підсумкові загальні значення з файлів конфігурації:
sudo /usr/sbin/sshd -T | grep -E '^(permitrootlogin|passwordauthentication) '
Очікуваний результат:
permitrootlogin yes
passwordauthentication yes
sshd -T читає конфігурацію з диска, але не застосовує її до запущеної служби. Без параметра -C ця перевірка також не моделює правила Match конкретного підключення.
5. Застосуйте зміни: команди для різних ОС
Debian 12/13:
sudo /usr/sbin/sshd -t && sudo systemctl reload ssh
sudo systemctl is-active ssh
Ubuntu Server 22.04/24.04:
sudo /usr/sbin/sshd -t && sudo systemctl reload ssh
sudo systemctl is-active ssh
Rocky Linux 9/10:
sudo /usr/sbin/sshd -t && sudo systemctl reload sshd
sudo systemctl is-active sshd
Символи && означають, що перечитування налаштувань виконається лише після успішної перевірки. Очікуваний стан служби — active. Перезавантажувати весь VPS для цих змін не потрібно.
6. Перевірте новий вхід в окремому вікні
Не закриваючи початкову сесію, відкрийте друге вікно термінала й виконайте:
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no root@SERVER_IP
Ця команда перевіряє саме вхід за паролем, навіть якщо у вас уже є SSH-ключ. За нестандартного порту додайте -p PORT. Введіть новий пароль root, потім перевірте:
whoami
Результат має бути root. Лише після успішного нового входу можна закривати початкову сесію.
Якщо пароль або SSH-вхід не працює
- sudo: command not found або user is not in the sudoers file: початковий обліковий запис не має готового доступу через sudo. Потрібна допомога дата-центру або адміністратора, який уже має root-доступ.
- su – працює, але SSH відмовляє: пароль установлено, однак доступ обмежує SSH або інша політика. Перевірте Include, Match, AllowUsers, AllowGroups, DenyUsers, DenyGroups та AuthenticationMethods. Не вимикайте MFA або інші обмеження навмання.
- Потрібні журнали: для Debian/Ubuntu виконайте
sudo journalctl -u ssh -n 50 --no-pager, для Rocky Linux —sudo journalctl -u sshd -n 50 --no-pager. - Connection refused або тайм-аут: перевіряйте адресу, порт, стан служби та мережеві правила. Саме встановлення іншого пароля не усуне таку помилку.
Ця інструкція призначена для VPS або виділеного сервера, до якого ви маєте адміністративний доступ. На звичайному спільному хостингу клієнтський SSH-доступ не надає прав root.
Офіційна документація
Від інструкції — до налаштування
Умови та можливості відповідної послуги — на основному сайті UAhosting.
Переглянути послугу