Как отключить запрос пароля со стороны клиента ssh?


9

У меня есть скрипт, который опирается на SSH-аутентификацию с открытым / закрытым ключом. Проблема заключается в том, что некоторые системы неправильно настроены и не имеют надлежащего настроенного доверительного / открытого ключа ssh. Когда это произойдет, sshспросите меня о пароле, блокирующем выполнение скрипта. Я попробовал эту команду:

sudo ssh -o "PasswordAuthentication=no" -o "ChallengeResponseAuthentication=no" root@last-call

Но мне все еще предлагают ввести пароль root.


После проб и ошибок я нашел нужный вариант. "PreferredAuthentications=publickey"
Красный Крикет

это лучше, чем предложенное решение? (BatchMode)
knocte

Ответы:


9

Канонический способ сделать это с помощью BatchModeопции:

ssh -o BatchMode=yes …

Согласно инструкции :

Если установлено «да», запрос парольной фразы / пароля будет отключен. Эта опция полезна в сценариях и других пакетных заданиях, где нет ни одного пользователя для ввода пароля.

Я бы ожидал, что сочетание PasswordAuthentication=noи ChallengeResponseAuthentication=noбудет достаточно, хотя. ssh -vvможет дать подсказку.


Это тоже работает! $ sudo ssh last-call-2 Password: $ sudo ssh -o "BatchMode=yes" last-call-2 Permission denied (gssapi-keyex,gssapi-with-mic,publickey,password,keyboard-interactive).
Красный Крикет
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.