Ограничить парольный доступ по SSH для каждого пользователя, но разрешить аутентификацию по ключу


22

Можно ли отключить PASSWORD SSH доступ к пользователю, но разрешить аутентификацию ключа для каждого пользователя? Я имею в виду, что у меня есть пользователь A, которому я не хочу предоставлять доступ на основе пароля, НО я не хочу, чтобы он использовал только аутентификацию по ключу для доступа к серверу (ам). Благодарность


Ответы:


49

Вы можете добавить разделы «Соответствие» для соответствия определенным пользователям или группам в нижней части sshd_config, например:

Match user stew
PasswordAuthentication no

или

Match group dumbusers
PasswordAuthentication no

9
Я бы не стал делать отступы, так как это предполагает, что только на строки с отступами влияет то, Matchкогда в действительности все настройки затрагиваются до следующей Matchдирективы. Может быть смущает кого-то, кто не знаком с синтаксисом.
— Майкл Миор

2
@MichaelMior есть ли способ "EndMatch"?
— Ник Т

4
@NickT Matchработает до следующего Matchили Hostключевого слова. Вы могли бы просто использовать Match user *.
— Майкл Миор

@MichaelMior Значит ли это, что если вы используете Match user ZaQwEdCxS, вы можете отобразить набор строк конфигурации, которые никто не будет использовать, временно или постоянно?
— Tripp Kinetics

Это будет означать, что все строки конфигурации после этого будут применяться только к именованным пользователям ZaQwEdCxS. Если у вас есть другой вопрос, вы должны задать новый вопрос.
— Майкл Миор

4

Просто заблокируйте пароли пользователей, которым вы не хотите входить с паролями:

usermod -L <user>

Затем поместите действительный открытый ключ в их .ssh/authorized_keysфайл, и они смогут войти в систему только с соответствующим закрытым ключом, но не с паролем.

Примечание: это нарушит sudo, если пользователь не имеет NOPASSWD: в своей записи visudo


8
Это также сломает судо. Возможно, не проблема в этом случае, но это стоит упомянуть.
— EEAA

Да это правда. Я должен был упомянуть это.
— Оливер

1
Некоторые настройки OpenSSH (например, я думаю, что Ubuntu 14.04 в конфигурации по умолчанию) не позволяют заблокированным пользователям
— входить

@NilsToedtmann Можете ли вы привести источник для проверки? Это было бы очень важно отметить и в ответе, если так.
— Метаграф

-3

ты должен посмотреть в

/etc/ssh/sshd_config

Я думаю, что вы ищете

PasswordAuthentication yes

измените его на нет и не забудьте перезапустить sshd


2
Я знаю об этом - хотя это глобальные настройки - я хочу более детальный вариант - поэтому я сказал «для каждого пользователя» - я хочу это только для некоторых пользователей (используется для взаимодействия внутри кластера между серверами в кластере) - не для всех пользователей
— gyre

о, извини, я не прочитал это правильно, тогда то, что @stew порекомендовал, это путь
— alexus
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.