Предположим следующее. У нас есть сервер, доступный по SSH. Есть пользователь в /etc/passwd
у кого есть действующая оболочка входа в систему (например, /bin/bash
, вместо недопустимого типа /bin/false
).
У этого пользователя есть звездочка (*
) во втором поле (пароль) /etc/shadow
. Есть ли способ, которым этот пользователь мог войти через SSH, если у него нет ключа ssh в его ~/.ssh/
папка?
Или, если несколько перефразировать вопрос: по какой причине многие онлайн-руководства рекомендуют отключать оболочку входа в систему, когда есть *
в поле пароля /etc/shadow
?
А * в месте хешированного пароля в /etc/shadow
эффективно отключает все входы на основе паролей, так как никакие действия пользователя никогда не приведут к хэш-значению *
. Но пользователь все еще может войти в систему со своими ключами ssh.
Разница в использовании * вместо восклицательного знака ! в том, что последнее указывает на заблокированная учетная запись в PAM, который, в зависимости от конфигурации sshd, также отключит вход на основе ключа.
Причина установки недопустимой оболочки - просто предотвратить работу интерактивных сеансов входа в систему (независимо от того, установлен ли пароль для учетной записи) и заблокировать sudo su - user
и подобное из рабочих.