1.8 KiB
Запретить SSH-вход под root
Приоритет: средний
playbook-system.yml:34 переопределяет дефолт роли на
security_ssh_permit_root_login: "yes" → PermitRootLogin yes. Это управляет
только тем, пускать ли root по SSH, и не имеет отношения к паролю: вход по
паролю уже запрещён отдельной директивой PasswordAuthentication no (дефолт роли
security_ssh_password_authentication: "no", не переопределён). То есть брутфорса
пароля тут нет — остаётся то, что root явно разрешён к входу по ключу.
Почему всё равно стоит закрыть:
- Наименьшие привилегии. Ansible ходит под непривилегированным
majorсbecome(production.yml/timeweb.yml), root-логин для деплоя не нужен вовсе. - Defense-in-depth. Если
PasswordAuthenticationкогда-нибудь вернётся вyes(правка,Match-блок, чужая роль),PermitRootLogin yesтут же откроет root по паролю.prohibit-passwordдержит root key-only независимо.
Рекомендация: поставить "no" (root по SSH недоступен, деплой под major не
страдает). Если нужен аварийный вход root по ключу — "prohibit-password".
Из sec-ревью (fable, 2026-07-13); мотивировка уточнена после проверки конфига.
Связано: playbook-system.yml, production.yml, timeweb.yml, galaxy.roles/geerlingguy.security.