Il y a plusieurs façons de procéder.
Ma méthode préférée est d'installer http://pamsshagentauth.sourceforge.net/ sur les systèmes distants et aussi votre propre clé publique. (Trouvez un moyen d'installer ces éléments sur la VM, vous avez réussi à installer un système Unix complet, qu'est-ce que quelques fichiers de plus ?)
Avec votre agent ssh transféré, vous pouvez maintenant vous connecter à tous les systèmes sans mot de passe.
Et encore mieux, ce module pam s'authentifiera pour sudo avec votre paire de clés ssh afin que vous puissiez fonctionner avec les droits de Root (ou de tout autre utilisateur) si nécessaire.
Vous n'avez pas besoin de vous soucier de l'interaction avec la clé de l'hôte. Si l'entrée n'est pas un terminal, ssh limitera simplement votre capacité à transférer des agents et à vous authentifier avec des mots de passe.
Vous devriez également examiner les paquets comme Capistrano. Jetez un coup d'œil à ce site ; il contient une introduction aux scripts à distance.
Les lignes individuelles de script pourraient ressembler à quelque chose comme ceci :
ssh remote-system-name command arguments ... # so, for exmaple,
ssh target.mycorp.net sudo puppet apply