sshd_config

PermitRootLogin

Параметр PermitRootLogin у конфігураційному файлі SSH (/etc/ssh/sshd_config) визначає, чи дозволено вхід на сервер по SSH безпосередньо під користувачем root.


Формат:

PermitRootLogin yes|no|prohibit-password|without-password|forced-commands-only

Значення:

Значення
Опис

yes

Дозволяє прямий вхід по SSH під root (з паролем або ключем). Небезпечно.

no

Забороняє будь-який вхід під root через SSH.

prohibit-password

Забороняє вхід з використанням пароля, але дозволяє вхід з ключем SSH. (заміна without-password з OpenSSH 7.0+)

without-password

Те саме, що prohibit-password (застаріле, але ще підтримується).

forced-commands-only

Дозволяє root входити лише якщо ключ має примусову команду (command="..." у authorized_keys).


Приклад:

PermitRootLogin prohibit-password

Root зможе заходити лише за наявності SSH-ключа. Пароль не приймається.


Безпечна практика

  • Рекомендується: PermitRootLogin prohibit-password або повністю no.

  • Краще:

    1. Відключити root-доступ по SSH (PermitRootLogin no)

    2. Використовувати звичайного користувача з правами sudo

    3. Обов'язково використовувати SSH-ключі замість пароля


Перевірка / застосування змін:

Після редагування sshd_config, перевір синтаксис:

sshd -t

І перезапусти службу:

systemctl restart ssh

PasswordAuthentication

Параметр PasswordAuthentication у конфігураційному файлі SSH (/etc/ssh/sshd_config) визначає, чи дозволено автентифікацію за паролем для SSH-клієнтів.


Формат:

PasswordAuthentication yes|no

Значення:

Значення
Опис

yes

Дозволяє автентифікацію за паролем. Користувачі можуть входити, вводячи свій пароль.

no

Забороняє автентифікацію за паролем. Тільки ключі SSH або інші методи (наприклад, GSSAPI, Kerberos).


Приклад:

PasswordAuthentication no

Це означає, що всі спроби входу з паролем будуть відхилені. Користувач повинен мати SSH-ключ.


Взаємодія з іншими параметрами:

  • PermitRootLogin: якщо дозволений доступ root, то PasswordAuthentication контролює, чи можна входити root'ом з паролем.

  • ChallengeResponseAuthentication: має бути теж no, якщо ти хочеш повністю вимкнути всі паролі.

  • UsePAM: якщо ввімкнено (yes), PAM може впливати на поведінку PasswordAuthentication.


Безпечна практика:

  • В безпечному серверному середовищі рекомендується:

    PasswordAuthentication no
    PermitRootLogin prohibit-password

    Це означає:

    • Вхід тільки за допомогою SSH-ключів

    • Навіть root не зможе зайти по паролю

    • Інші користувачі — лише з ключами


Після змін:

sshd -t         # перевірка синтаксису
systemctl restart ssh

Хочеш приклад повністю захищеного фрагмента sshd_config з ключовими параметрами?

Last updated