У меня просто была эта проблема, и я нашел ответ здесь:
http://www.gossamer-threads.com/lists/openssh/dev/47179
В основном, openssh использовал интерактивную клавиатуру для реализации вызова-ответа. Таким образом, если любой из этих параметров установлен на "да", то в интерактивном режиме клавиатуры в коде устанавливается "да". Вы должны установить оба "нет", чтобы получить поведение, которое вы хотите.
Я должен был сделать:
ssh -o PasswordAuthentication=no -o KbdInteractiveAuthentication=no -o ChallengeResponseAuthentication=no
Конечно, параметр BatchMode=yes
позаботится обо всем этом для вас и в будущем защитит вас от любых новых методов интерактивной аутентификации пользователя в будущем.