Что означает «без пароля» в файле sshd_config?

Я только что установил 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?

1
задан 21 February 2016 в 00:29

3 ответа

Фактически этот параметр почти ничего не делает, если вы используете аутентификацию 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
15
ответ дан 24 May 2018 в 09:20
  • 1
    В моем кратком опыте даже установка этого параметра на no не заставит PermitRootLogin without-password работать, как-то! :( – cregox 2 December 2015 в 06:34
  • 2
    @cregox, если вы используете обычную настольную систему, вам нужно сделать ssh-copy-id -i ~/.ssh/id_rsa.pub user@ip, и она создает ~/.ssh/authorized_keys, если вы не можете войти в систему как root, вы не создадите этот файл в /root/.ssh/ но он работает, если вы копируете файл там – Rutrus 6 May 2016 в 04:46

Обратите внимание, что есть законные причины входа в систему через root (но с использованием криптографических ключей и никогда не пароль). Типичным примером является дистанционная синхронизация двух серверов (чтобы один из них использовался как отказ). Поскольку структура должна быть идентичной, часто требуется пароль root.

Ниже приведен пример использования унисона для синхронизации: https://serverfault.com/questions/341985/remotely-use-root-over -ssh-для-унисон

3
ответ дан 24 May 2018 в 09:20
  • 1
    Не будет ли вход в систему с обычным пользователем (скорее всего, с использованием криптографических ключей) и принадлежность к группе sudo позволит вам это сделать? – NS du Toit 31 March 2016 в 17:19

В новых версиях sshd «без пароля» был изменен на «запрет-пароль».

Обе версии работают, возможно, лучше использовать «запретить-пароль», если вы можете: он сам объясняет лучше.

0
ответ дан 24 May 2018 в 09:20

Другие вопросы по тегам:

Похожие вопросы: