Я только что установил Ubuntu 14.04 на свой сервер, и я настраивал все свои файлы конфигурации, когда сталкивался с этим в моем файле sshd_config:
# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes
Это меня очень беспокоило. Я думал, что возможно, что кто-то может войти на мой сервер как root без пароля.
Я попытался подключиться к моему серверу с помощью root:
johns-mbp:~ john$ ssh root@192.168.1.48
The authenticity of host '192.168.1.48 (192.168.1.48)' can't be established.
RSA key fingerprint is 40:7e:28:f1:a8:36:28:da:eb:6f:d2:d0:3f:4b:4b:fe.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.48' (RSA) to the list of known hosts.
root@192.168.1.48's password:
Я ввел пустой пароль, и это меня не пустило, что было облегчением. Поэтому мой вопрос: что означает без пароля и почему это является дефолтом в Ubuntu 14.04?
Фактически этот параметр почти ничего не делает, если вы используете аутентификацию PAM. В нижней части конфигурационного файла sshd_config вы найдете:
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
Значение по умолчанию для Ubuntu заключается в использовании аутентификации PAM:
UsePAM yes
Обратите внимание, что есть законные причины входа в систему через root (но с использованием криптографических ключей и никогда не пароль). Типичным примером является дистанционная синхронизация двух серверов (чтобы один из них использовался как отказ). Поскольку структура должна быть идентичной, часто требуется пароль root.
Ниже приведен пример использования унисона для синхронизации: https://serverfault.com/questions/341985/remotely-use-root-over -ssh-для-унисон
В новых версиях sshd «без пароля» был изменен на «запрет-пароль».
Обе версии работают, возможно, лучше использовать «запретить-пароль», если вы можете: он сам объясняет лучше.