OK, eu me sinto um pouco burro por ter cometido este erro, mas um pouco esperto por ter descoberto - graças à sugestão do @Jajuke de fazer um muito, muito detalhado ssh.
Na minha configuração ssh, tenho abreviaturas configuradas para meus hosts, por exemplo:
Host myhost
HostName myhost.com
User username
E no shell, eu apenas faço ssh myhost
e tudo funciona.
No entanto, no meu script, eu analiso os nomes de host de .ssh/known_hosts
, que tem o nome completo do host: P Em minha configuração ssh, eu não tinha nada configurado para myhost.com
; apenas myhost
. Então, é claro, o ssh voltou para a autenticação de senha.
Minha solução foi atualizar minha configuração ssh para incluir o nome do host completo ao lado do meu alias:
Host myhost myhost.com
HostName myhost.com
User username
E isso só funciona de novo!
Espero que isso possa salvar alguém de perplexidade semelhante.