Я просто установил Ubuntu 14.04 на своем сервере, и я настраивал все свои файлы конфигурации, когда я столкнулся с этим в моем sshd_config
файл:
# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes
Это сделало меня очень взволнованным. Я думал, что было возможно, что кто-то мог входить в мой сервер как в корень без пароля.
Я пытался соединиться со своим сервером как корень через:
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?
От страница справочника :
PermitRootLogin
Определяет, может ли корень войти в систему с помощью ssh (1). Аргументом должен быть “yes”, “without-password”, “forced-commands-only”, или "no”. Значение по умолчанию является “yes”.
, Если эта опция установлена на “without-password”, аутентификация по паролю отключена для корня.
, Если эта опция установлена на “forced-commands-only”, корневой вход в систему с аутентификацией с открытым ключом будет позволен, но только если
command
опция была определена (который может быть полезен для взятия удаленных резервных копий, даже если корневой вход в систему обычно не позволяется). Все другие методы аутентификации отключены для корня., Если эта опция установлена на “no”, корню не позволяют войти в систему.
Таким образом without-password
позволяет корневой вход в систему только с аутентификацией с открытым ключом. Это часто используется со сценариями оболочки и автоматизированными задачами.
Обратите внимание, что существуют законные причины входа, на пути базируются (но использование криптографических ключей и никогда пароль). Типичным примером являются удаленно sync'ing два сервера (для имения одного из них используемый в качестве обработки отказа). Поскольку структура должна быть идентичной, часто пароль root требуется.
Вот пример с помощью унисона для синхронизации: https://serverfault.com/questions/341985/remotely-use-root-over-ssh-for-unison
На самом деле эта установка в значительной степени ничего не делает при использовании аутентификации 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
В более новых версиях sshd, "без паролей", был изменен на "запрещать-пароль".
Обе работы версии, вероятно, лучше всего для использования "запрещать-пароля", если Вы можете: это объясняется лучше.