Замовлення на аутентифікацію за допомогою SSH


22

Коли я входжу через ssh, -vя бачу, що ssh автентифікується наступним чином

debug1: Authentications that can continue: publickey,gssapi-with-mic,password,hostbased

Я хотів би змінити порядок ... будь-яка ідея як?

Моя більша проблема полягає в тому, що користувач із заблокованими обліковими записами може все-таки входити через відкриті ключі. Я виявив, що можу додати користувача до групи "ssh-заблокований", додати заперечення цієї групи від sshing, але мені все ще цікаво, чи є спосіб сказати ssh'd: Будь ласка, перевірте пароль перед ключами ...


1
Я думаю, ви підходите до цього неправильно - ключі (як правило) більш безпечні, ніж паролі. Якщо обліковий запис заблоковано, потрібно повідомити демону sshd, щоб він не дозволяв користувачеві входити, незалежно від способу аутентифікації.
EightBitTony

Як я вже говорив, я знайшов рішення за допомогою DenyGroups. Я прошу це заради інтересу.
Oz123

Відповіді:


31

Ssh-сервер вирішує, які параметри аутентифікації він дозволяє, ssh-клієнт може бути налаштований, щоб вирішити, в якому порядку їх спробувати.

Для визначення цього ssh-клієнта використовується PreferredAuthenticationsопція у файлі налаштування ssh.

Від man ssh_config( дивіться його онлайн тут ):

PreferredAuthentications
             Specifies the order in which the client should try protocol 2 authentication methods.  This allows a client to prefer
             one method (e.g. keyboard-interactive) over another method (e.g. password).  The default is:

                   gssapi-with-mic,hostbased,publickey,
                   keyboard-interactive,password

Я не вірю, що можна, не граючи з джерелом, сказати серверу OpenSSH, щоб він віддав перевагу певному порядку - якщо ви думаєте про це, все одно це не має сенсу.


Якщо ви використовуєте Git Bash для Windows, збережіть свій ssh ​​config до~/.ssh/config
Спенсер Вільямс

Порядок може мати сенс, якщо один метод залежить від попереднього. Наприклад, 2FA під клавіатурою-інтерактив може залежати від того, що користувач вперше надав дійсний пароль.
steveayre

Чи можете ви розмістити джерело, куди ви скопіювали вище інформацію про PreferredAuthentication? Я не бачу його man sshні в /etc/ssh/ssh_config, ні в, ні в /etc/ssh/sshd_config. Звідки ви взяли цю інформацію?
Габріель Степлес

Знайшов це! Це було в man ssh_config. Я надіслав редагування для розгляду, щоб оновити вашу відповідь, щоб містити це джерело. Будь ласка, цитуйте джерела наступного разу! Велике дякую.
Габріель Степлес

18

Додавання цього:

PreferredAuthentications keyboard-interactive,password,publickey,hostbased,gssapi-with-mic

... мої /etc/ssh/ssh_configдопомогли мені вирішити це, і заощадили багато часу!

Ви можете перевірити, чи працює він, скориставшись ssh -v user@hostкомандою для підключення, де -vозначає "багатослівний".


2
Переконайтеся, що ви додаєте це до правильного файлу, ssh_configа ні sshd_config. Останнє призведе до виходу з ладу вашого ssh!
апельсини13

0

Додаючи до двох інших відповідей, де вже згадується PreferredAuthenticationsваріант, я хотів би додати, що вам не потрібно редагувати жоден файл, щоб встановити це налаштування, якщо ви цього не хочете . Швидше, ви можете просто встановити його в командному рядку для індивідуального викликуssh з -oможливістю наступного:

ssh -o PreferredAuthentications=publickey,gssapi-with-mic,hostbased,keyboard-interactive,password user@hostname

Список літератури:

  1. Щоб прочитати більше про цю PreferredAuthenticationsопцію, дивіться man ssh_config( дивіться її онлайн тут ). Прочитайте також про ssh -oпараметр на man sshсторінках керівництва ( онлайн тут ).
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.