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


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

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

Match User !root
PasswordAuthentication no

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

PasswordAuthentication no
Match User root
PasswordAuthentication yes

142
2018-06-30 14:31


Источник


Может, это из-за вашего отступов? - nil
Стоит отметить, что эти строки под совпадением должны быть в конце файла - zidarsk8
! root тоже не работает для меня. Второй подход сделал трюк. - natenho
Я видел случаи, когда Match User "!root,*" выполнил эту работу. - Roman Hocke


Ответы:


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

Match User user1,user2,user3,user4
    PasswordAuthentication no

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

Match Group users
    PasswordAuthentication no

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

Match User !root
    PasswordAuthentication no

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


156
2018-06-30 16:13



предпочитать Match user !root для этого случая - 84104
Удивительно, я не знал о синтаксисе Match. Одно из предложений, которое я бы сделал, это, если это публичный сервер, я бы вообще не разрешил вход в root через SSH. Наверное, это не огромная сделка, если она внутренняя, хотя .. - Safado
@SpacemanSpiff Вот что такое: a) надежные пароли и b) denyhosts / fail2ban. - ceejayoz
@ deed02392 Вы можете считать ключ действительно надежным паролем, если хотите. - ceejayoz
Это так сильно, что это не в одном и том же шаровом парке, это была моя точка зрения. Аутентификация паролем также должна быть отключена для root, а для входа в систему разрешены только ключи. - deed02392


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

PasswordAuthentication no
Match User root
PasswordAuthentication yes
Match all

11
2017-11-27 22:13





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

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


1
2018-06-30 15:42





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

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


-1
2018-03-04 06:10