Я хотел бы иметь возможность иметь один набор пользователей, аутентифицируемых с использованием аутентификации с открытым ключом, и других пользователей, использующих аутентификацию по паролю.
Возможно ли это в OpenSSH в Linux? Если да, то как мне это сделать?
После просмотра /etc/ssh/sshd_config
, похоже, я ограничен включением аутентификации по ключу или использованием PAM.
В Match
директива (описанная в man sshd_config
) позволяет указать разные методы аутентификации для разных пользователей в одном экземпляре sshd-сервера. В качестве бонуса к перечислению отдельных пользователей и групп он также позволяет выбирать их с помощью подстановочных знаков.
Match Group wheel # for users from group wheel:
PubkeyAuthentication
Match Group !wheel,* # for other users:
PasswordAuthentication
# caution: don't add directives here - they will be caught by "Match" block
# (end of file /etc/ssh/sshd_config)
Можно запустить два разных экземпляра OpenSSH. Один будет настроен для PasswordAuthentication
а другой для PubkeyAuthentication
(каждый привязан к разному адресу). Затем AllowGroups
Директива конфигурации будет использоваться для управления тем, какие группы могут использовать какой сервер.
Но я могу неправильно понять вопрос, потому что вы говорите: «Это аутентификация PAM или PublicKey». Оба могут быть включены одновременно. Они не исключают друг друга.