Назад | Перейти на главную страницу

OpenSSH: разные методы аутентификации

Мне нужно, чтобы пользователи входили в систему CentOS с разными методами аутентификации. Некоторые используют пароль, а другие - открытый ключ.

Я следовал методам, упомянутым здесь: Как я могу настроить методы аутентификации OpenSSH для каждого пользователя?

Однако мне не удалось получить успешный вход на основе пароля.

В файле sshd_config у меня есть:

AuthenticationMethods keyboard-interactive,publickey
PasswordAuthentication no

Match User newton
    PasswordAuthentication yes
Match all

Обновление: я вижу, что проблема возникает только тогда, когда у меня включена 2FA с аутентификацией Google, и у меня есть строка:

AuthenticationMethods keyboard-interactive,publickey

Хотя для пользователя newton я установил аутентификацию по паролю, я вижу следующую ошибку:

[root@localhost]# ssh newton@50.39.213.152
Permission denied (publickey).

Любые предложения приветствуются.

Хотя ответ @Tolsadus, вероятно, указывает на правильное решение, он не дает четкого ответа на вопрос.

Короче говоря, справочная страница для ssh_config это хорошее начало для понимания того, как работает парсер конфигурации в ssh (те же правила применяются для sshd_config):

Для каждого параметра будет использоваться первое полученное значение.

Это означает, что ваш пример установит PasswordAuthentication к no для всех пользователей и для newton пользователь не будет перезаписывать его (поскольку он уже установлен). Чтобы обойти это, вы должны установить значения по умолчанию в Match блок. Это окажет ожидаемое влияние на newton пользователь:

Match User newton
    PasswordAuthentication yes
Match all
    PasswordAuthentication no

Идеальное объяснение как использовать опцию соответствия в /etc/ssh/sshd_config

В вашем случае вам должен понравиться этот пример "реального" мира https://gist.github.com/kjellski/5940875

Вы можете найти это совпадение по адресам, а также по пользователям, которые комментируются.

ИЗМЕНИТЬ / ОБНОВИТЬ

@Jakuje правильно ответил на вопрос, намного точнее, чем мой.