Estou escrevendo um script para percorrer uma lista de nomes de host conhecidos, a fim de encontrar um servidor SSH em funcionamento no qual eu possa autenticar com minha chave SSH.
A chave está já carregada com ssh-agent e ssh-add , portanto, se eu me conectar a um host remoto funcional que conheça minha chave, nenhuma senha será solicitada e estou conectado com êxito sem nenhuma interação .
A coisa é, quando o host remoto não sabe minha chave, ssh me avisa com a senha (não tem chance de sucesso porque, se pudesse, já teria me registrado graças a ssh-agent ) . Eu gostaria de evitar esse comportamento e fazer o ssh abortar quando a ssh-agent auth falhar.
No momento, estou usando o seguinte comando para ignorar a maior parte da interação, mas não posso impedir o que acabei de descrever:
$ ssh -i ~/.ssh/id_rsa \
-o UserKnownHostsFile=/dev/null \
-o KbdInteractiveAuthentication=no \
-o StrictHostKeyChecking=no \
-o PreferredAuthentications=publickey \
-o ConnectTimeout=1 \
$host -n "whoami"
Obrigado pelas suas respostas.