Não ficou claro por que você não pôde usar ssh-keygen
e a troca de chaves subsequente. Eu acredito que esta é a prática recomendada.
Uma alternativa seria usar o comando expect
( man pages on-line ). Isso pode eliminar a intervenção do usuário nos processos interativos. Como o nome sugere, ele espera um prompt e responde de acordo com o especificado.
Veja essa solução de automação do SSH usando expect
. Para citar algumas linhas:
# Look for passwod prompt expect "*?assword:*" # Send password aka $password send -- "$password\r"
A segunda linha especifica o prompt exibido. Neste caso, pede senha. A quarta linha envia a senha para o servidor.