Назад | Перейти на главную страницу

Разные политики аутентификации ssh для разных учетных записей

Я знаю, что могу отключить аутентификацию SSH с открытым текстовым паролем для пользователя root (используя PermitRootLogin) и включите его для всех остальных пользователей. Но мне нужно отключить текстовые пароли для некоторых список пользователей (и сохраните для них только аутентификацию с открытыми ключами). Для тех, кто не включен в список, мне также нужно включить аутентификацию по паролю.

Итак, как я могу настроить разные политики SSH для разных пользователей? В sshd_config я нашел всего 2 аргумента:

PermitRootLogin without-password  # disable text password for root
PasswordAuthentication yes  # enable it for all other users

Я хотел бы иметь конфигурацию в стиле словаря, например:

user1Auth without-password
user2Auth without-password
user3Auth yes
...

P.S. Моя ОС - Ubuntu 14.04.

Вы можете использовать Match User или Match Group директивы:

Match Group usergroup
    PasswordAuthentication no

Если вы не хотите использовать группы, вы можете указать каждого пользователя:

Match User user1,user2
    PasswordAuthentcation yes

Match User user3
    PasswordAuthentication no

Я предпочитаю никогда не назначать привилегии напрямую пользователям (независимо от системы), поэтому я всегда использую группы. Это также имеет то преимущество, что вы можете изменять членство в группе без перезапуска sshd.

NB. Эти строки конфигурации должны быть написаны под всеми другими конфигурациями в /etc/sshd_config.