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

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

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

  Match User! root
PasswordAuthentication no
 

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

  PasswordAuthentication no
Матч пользователя root
Аутентификация паролем да
 
140 голосов | спросил Stepan 30 J0000006Europe/Moscow 2011, 18:31:06

4 ответа


156

Попробуйте Match в sshd_config :

  Соответствие Пользователь user1, user2, user3, user4
    PasswordAuthentication no
 

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

  Пользователи группы Match
    PasswordAuthentication no
 

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

  Match User! root
    PasswordAuthentication no
 

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

ответил Cakemox 30 J0000006Europe/Moscow 2011, 20:13:43
11

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

  PasswordAuthentication no
Матч пользователя root
Аутентификация паролем да
Совсем все
 
ответил Trevor Hateley 28 12016vEurope/Moscow11bEurope/MoscowMon, 28 Nov 2016 01:13:33 +0300 2016, 01:13:33
1

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

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

ответил mitchellhislop 30 J0000006Europe/Moscow 2011, 19:42:06
-1

вы можете просто перейти в файл /etc /ssh /sshd_config и добавить строку Чтобы разрешить -> AllowUsers user1 Запретить ---> Пользователь DenyUsers2

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

ответил Sharan 4 MaramFri, 04 Mar 2016 09:10:21 +03002016-03-04T09:10:21+03:0009 2016, 09:10:21

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132