На сколько мне известен сей факт, что в системах Ubuntu работа под root
(ом) не приветствуется и следует применять sudo
для запроса на повышение прав доступа. Что я имею в виду под root
авторизацией — не локальное повышение прав, а подключение через SSH
под root
, т. е. Строка вида: ssh -l root@<REMOTE_HOST> -p <PORT>.
Тестовая система:
srv-server → 172.33.33.2 (ОС: Ubuntu 18.04 Server amd64)
Работая в консоли под пользователем, можно сделать повышение прав до уровня через sudo
1 2 3 |
ekzorchik@srv-server:~$ sudo ifconfig [sudo] password for ekzorchik: |
Работая в консоли под пользователем, можно перейти в контекст суперпользователя root:
1 2 3 4 5 6 7 8 9 |
ekzorchik@srv-server:~$ sudo su - root [sudo] password for ekzorchik: root@srv-server:~# exit logout ekzorchik@srv-server:~$ |
Но вот чтобы удаленно зайти на систему из под root
нельзя:
1 2 3 4 5 |
ekzorchik@navy:~$ ssh -l root 172.33.33.2 root@172.33.33.2's password: Permission denied, please try again. |
Пишет доступ запрещено, пожалуйста попробуйте снова, а все дело в том что в конфигурационном файле SSH →
1 2 3 |
ekzorchik@srv-server:~$ cat /etc/ssh/sshd_config | grep PermitRootLogin | head -n1 #PermitRootLogin prohibit-password |
значение что под учетной записью root
закомментировано.
1 |
ekzorchik@srv-server:~$ cat /etc/ssh/sshd_config | grep PasswordAuthentication | head -n1 |
#PasswordAuthentication yes
→ доступ в систему сейчас только по связке логин и пароль и публичный ключ, если символ комментария снять, то будет использоваться только по публичному ключу.
Чтобы проверить какой тип авторизации доступен на сервере (ключ или пароль или все вместе):
1 |
ekzorchik@navy:~$ ssh -vvv root@172.33.33.2 2>&1 | grep "Next authentication method:" |
debug1: Next authentication method: publickey
— доступ к серверу по ключу возможенdebug1: Next authentication method: password
— доступ к серверу по связке логин&пароль возможен.
Если нужно чтобы доступ все же был к системе из под root
, то снимаем символ комментария и ставим значение yes вместо prohibit-password
(запретить-пароль) →
1 2 3 4 5 6 7 |
ekzorchik@srv-server:~$ sudo sed -i "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/" /etc/ssh/sshd_config ekzorchik@srv-server:~$ cat /etc/ssh/sshd_config | grep PermitRootLogin | head -n1 PermitRootLogin yes ekzorchik@srv-server:~$ sudo systemctl restart ssh |
Устанавливаем пароль на учетную запись root:
1 2 3 4 5 6 7 8 9 |
ekzorchik@srv-server:~$ sudo passwd root Enter new UNIX password: в рамках тестирования указываю 712mbddr@ Retype new UNIX password: в рамках тестирования указываю 712mbddr@ passwd: password updated successfully ekzorchik@srv-server:~$ |
Проверяю, будет ли авторизация на этой системе если к ней подключаться по SSH
из под root
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
ekzorchik@navy:~$ ssh -l root 172.33.33.2 root@172.33.33.2's password: указываю назначенный выше пароль 712mbddr@ Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-48-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. root@srv-server:~# whoami root root@srv-server:~# |
Подключение прошло успешно.
Если могли заменить то обычно при покупке сервера, VPS
ресурсов запуске Вам доступен только root
доступ, чтобы пользоваться в дальнейшем: мой вам совет — создайте отдельную учетную запись и работайте с ней, если нужно выполнить привилегированные команды то задействуйте sudo
. И следует в файле sshd_config
отменить возможно авторизации из под учетной записи root
1 2 3 |
root@srv-server:~# useradd -m -p 712mbddr@ -c "New User for Server" -s /bin/bash ekz root@srv-server:~# usermod -aG sudo ekz |
У меня все так, упор на безопасность, потому как за сервисы отвечая Я сам.
На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.