2

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

С помощью

ssh -o KbdInteractiveAuthentication = нет -o PasswordAuthentication = нет -o PubkeyAuthentication = да test @ host

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

1 ответ1

4

У меня просто была эта проблема, и я нашел ответ здесь:

http://www.gossamer-threads.com/lists/openssh/dev/47179

В основном, openssh использовал интерактивную клавиатуру для реализации вызова-ответа. Таким образом, если любой из этих параметров установлен на "да", то для клавиатуры в интерактивном режиме устанавливается "да". Вы должны установить оба "нет", чтобы получить поведение, которое вы хотите.

Я должен был сделать:

ssh -o PasswordAuthentication=no -o KbdInteractiveAuthentication=no -o ChallengeResponseAuthentication=no

Конечно, параметр BatchMode=yes позаботится обо всем этом для вас и в будущем защитит вас от любых новых методов интерактивной аутентификации пользователя в будущем.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .