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

как отключить вход по SSH с паролем для некоторых пользователей?

В Linux (Debian Squeeze) я хотел бы отключить вход по SSH с использованием пароля для некоторых пользователей (выбранной группы или всех пользователей, кроме root). Но я не хочу отключать вход по сертификату для них.

редактировать: Большое спасибо за подробный ответ! По какой-то причине на моем сервере это не работает:

Match User !root
PasswordAuthentication no

... но его можно легко заменить на

PasswordAuthentication no
Match User root
PasswordAuthentication yes

Пытаться Match в sshd_config:

Match User user1,user2,user3,user4
    PasswordAuthentication no

Или по группе:

Match Group users
    PasswordAuthentication no

Или, как указано в комментарии, отрицанием:

Match User !root
    PasswordAuthentication no

Обратите внимание, что совпадение эффективно "до другой строки Match или до конца файла". (отступ не имеет значения)

Match в sshd_config работает хорошо. Вы должны использовать Match all чтобы завершить блок совпадений, если вы используете openssh 6.5p1 или выше. Пример:

PasswordAuthentication no
Match User root
PasswordAuthentication yes
Match all

Есть несколько способов сделать это - во-первых, вы могли бы легко запустить второй демон sshd на другом порту с другой конфигурацией - это немного похоже на взлом, но с некоторой работой chroot он должен работать нормально.

Кроме того, вы можете разрешить аутентификацию по паролю, но заблокировать пароли для всех, кроме одного пользователя. Пользователи с заблокированными паролями по-прежнему смогут аутентифицироваться с помощью открытых ключей.

вы можете просто перейти в файл / etc / ssh / sshd_config и добавить строку To allow -> AllowUsers user1 To Deny ---> DenyUsers user2

мы можем разрешить / запретить вход для определенного набора хостов, используя файлы hosts.allow или hosts.deny, расположенные в папке / etc

По некоторым причинам безопасности вам может потребоваться заблокировать SSH-доступ определенного пользователя к Linux.

Отредактируйте файл sshd_config. Иногда его расположение зависит от дистрибутива Linux, но обычно оно находится в / etc / ssh /.

Откройте файл, войдя в систему как root:

# vi /etc/ssh/sshd_config

Вставьте строку в конец файла конфигурации: -

DenyUsers username1 username2 username3 username4

Сохраните его и перезапустите службы SSH. Обычно вход по SSH по имени пользователя1, имени пользователя2, имени пользователя3 и имени пользователя4 запрещен.

Выполните команду ниже, чтобы перезапустить то же самое: -

# systemctl restart sshd

Требование выполнено. Пожалуйста, возьмите ssh у этих пользователей, и вы получите сообщение об ошибке «Доступ запрещен».