Обмежте доступ до SSH на основі пароля на користувача, але дозвольте аутентифікацію ключа


22

Чи можна відключити доступ PASSWORD SSH до користувача, але дозволити аутентифікацію ключа на основі кожного користувача? Я маю на увазі, у мене є користувач, якому я не хочу надати доступ на основі пароля, Але Я не хочу, щоб він використовував лише автентифікацію ключа для доступу до сервера (серверів) Спасибі


Відповіді:


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файл дійсний відкритий ключ, і вони зможуть увійти лише з відповідним приватним ключем, але не з паролем.

Примітка: Судо буде порушено, якщо користувач не має NOPASSWD: у своєму візуальному записі


8
Це також зламає судо. Можливо, це не проблема в цій справі, але про це слід згадати.
EEAA

Так це правда. Я повинен був це згадати.
Олівер

1
Деякі налаштування OpenSSH (наприклад, я думаю, що Ubuntu 14.04 у конфігурації за замовчуванням) не дозволяють заблокувати користувачів, навіть не через авторизовані
ключі

@NilsToedtmann Ви можете навести джерело для перевірки? Це було б дуже важливо зазначити у відповіді, якщо це так.
Метаграф

-3

вам слід заглянути

/etc/ssh/sshd_config

Я думаю, що ти шукаєш

PasswordAuthentication yes

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


2
Я знаю про це - хоча це налаштування GLOBAL - я хочу більш детальний варіант - тому я сказав "на основі користувача" - я хочу це лише для деяких користувачів (використовується для внутрішньої кластерної комунікації між серверами кластеру) - не для всіх користувачів
gyre

ой так, вибачте, що я не прочитав його правильно. Тоді, що рекомендував @stew, це шлях?
alexus
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.