Eu tenho um script que ssh'es vários servidores usando autenticação de chave pública. Um dos servidores parou de permitir o login do script devido a um problema de configuração, o que significa que o script fica bloqueado com o prompt "Senha:", que obviamente não pode responder, por isso nem tenta o resto dos servidores na lista.
Existe uma maneira de dizer ao cliente ssh para não solicitar uma senha se a autenticação da chave falhar, mas apenas para relatar um erro de conexão e deixar meu script continuar?
fonte
ssh user@host -oPreferredAuthentications=publickey -C 'echo success'
Adicione o seguinte ao seu
~/.ssh/config
:e para desativar a autenticação de senha no servidor, adicione a mesma linha
/etc/ssh/sshd_config
e reiniciesshd
.fonte
Se você estiver usando o dropbear, basta adicionar a
-s
opção " " para desativar a autenticação por senha.fonte
Na linha de comando (ou
~/.ssh/config
) você pode definirPreferredAuthentications
.fonte
ssh -o PreferredAuthentications=publickey
ssh "-oPreferredAuthentications publickey"