У меня есть скрипт, который ssh'es несколько серверов с использованием аутентификации с открытым ключом. Один из серверов перестал позволять входу сценария в систему из-за проблемы конфигурации, что означает, что сценарий застревает с запросом «Password:», на который он, очевидно, не может ответить, поэтому он даже не пробует остальные серверы в списке.
Есть ли способ сказать клиенту ssh не запрашивать пароль в случае сбоя аутентификации ключа, а вместо этого просто сообщить об ошибке подключения и позволить моему сценарию продолжить?
источник
ssh user@host -oPreferredAuthentications=publickey -C 'echo success'
Добавьте следующее к вашему
~/.ssh/config
:и чтобы отключить аутентификацию по паролю на сервере, добавьте ту же строку
/etc/ssh/sshd_config
и перезапуститеsshd
.источник
Если вы используете dropbear, просто добавьте
-s
опцию « », чтобы отключить аутентификацию по паролю.источник
В командной строке (или
~/.ssh/config
) вы можете установитьPreferredAuthentications
.источник
ssh -o PreferredAuthentications=publickey
ssh "-oPreferredAuthentications publickey"