O plink
do PuTTY pode aceitar a senha como um parâmetro da linha de comando. Ele não tem um equivalente direto a ssh-copy-id
, mas pode ser roteirizado com facilidade, por exemplo, executando os comandos manualmente ...
plink foo@bar -pw baz "mkdir -p ~/.ssh && echo 'ssh-ed25519 AAAA...' >> ~/.ssh/authorized_keys"
... ou fazendo o upload do arquivo com pscp
.
Além disso, se expect
não funcionar no Windows, você pode executá-lo em um desses 400 servidores Linux?
(Além disso, dados os números, talvez você deva procurar extrair as chaves do LDAP ou usar o AD / Kerberos? Versões recentes do OpenSSH têm ganchos para integração LDAP sem precisar de patches de terceiros.)