Когда я вхожу в систему через ssh с -v
Я вижу, что ssh аутентифицируется следующим образом
debug1: Authentications that can continue: publickey,gssapi-with-mic,password,hostbased
Я хотел бы изменить порядок ... Есть идеи как?
Моя большая проблема заключается в том, что пользователь с заблокированными учетными записями все еще может входить в систему с помощью открытых ключей. Я обнаружил, что могу добавить пользователя в группу "ssh-locked" добавить запретить этой группе sshing, но мне все еще интересно, есть ли способ сообщить ssh'd: Пожалуйста, проверьте пароль перед ключами ...
Сервер 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 отдавать предпочтение определенному порядку - если вы задумаетесь, это все равно не имеет смысла.
Добавляем это:
PreferredAuthentications keyboard-interactive,password,publickey,hostbased,gssapi-with-mic
... моему /etc/ssh/ssh_config
помогли мне решить эту проблему и сэкономили кучу времени!
Вы можете проверить, работает ли он, используя ssh -v user@host
команда для подключения, где -v
означает «многословный».
Добавляя к двум другим ответам, уже упоминающим PreferredAuthentications
вариант, хочу добавить вам не нужно редактировать какой-либо файл, чтобы установить этот параметр, если вы не хотите. Скорее, вы можете просто установите его в командной строке для индивидуального вызова ssh
, с -o
вариант, а именно:
ssh -o PreferredAuthentications=publickey,gssapi-with-mic,hostbased,keyboard-interactive,password user@hostname
PreferredAuthentications
вариант, см. man ssh_config
(посмотреть это онлайн здесь). Также читайте о ssh
-o
вариант в man ssh
справочные страницы (онлайн здесь). Для действительно заблокированной учетной записи вы обычно можете поиграть с датой истечения срока ее действия. Способы сделать это зависят от ОС вашего хоста, например в Linux это было бы chage -d 0 someuser
.
Смотрите также https://unix.stackexchange.com/questions/343535/what-is-the-solaris-equivalent-of-chage-d :-)