На сколько мне известен сей факт, что в системах 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
ekzorchik@srv-server:~$ sudo ifconfig [sudo] password for ekzorchik:
Работая в консоли под пользователем, можно перейти в контекст суперпользователя root:
ekzorchik@srv-server:~$ sudo su - root [sudo] password for ekzorchik: root@srv-server:~# exit logout ekzorchik@srv-server:~$
Но вот чтобы удаленно зайти на систему из под root
нельзя:
ekzorchik@navy:~$ ssh -l root 172.33.33.2 root@172.33.33.2's password: Permission denied, please try again.
Пишет доступ запрещено, пожалуйста попробуйте снова, а все дело в том что в конфигурационном файле SSH →
ekzorchik@srv-server:~$ cat /etc/ssh/sshd_config | grep PermitRootLogin | head -n1 #PermitRootLogin prohibit-password
значение что под учетной записью root
закомментировано.
ekzorchik@srv-server:~$ cat /etc/ssh/sshd_config | grep PasswordAuthentication | head -n1
#PasswordAuthentication yes
→ доступ в систему сейчас только по связке логин и пароль и публичный ключ, если символ комментария снять, то будет использоваться только по публичному ключу.
Чтобы проверить какой тип авторизации доступен на сервере (ключ или пароль или все вместе):
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
(запретить-пароль) →
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:
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
:
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
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.