Files
pet-project-server/docs/backlog/ssh-disable-root-login.md
T
av 9b8cd5cab6
Linting / YAML Lint (push) Canceled after 0s
Linting / Ansible Lint (push) Canceled after 0s
Backlog: уточнить SSH-задачу, завести очистку устаревшего инвентаря
2026-07-13 19:52:01 +03:00

1.8 KiB
Raw Blame History

Запретить 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.