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.