Обмежте доступ до 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.