Il est préférable de configurer ssh pour utiliser l'authentification par clé plutôt que d'essayer de comprendre comment envoyer du texte au processus de connexion avec quelque chose comme expect
.
Jetez un coup d'oeil :
https://help.ubuntu.com/community/SSH/OpenSSH/Keys
Donc, en gros, exécutez ssh-keygen -t dsa
sur la machine qui exécutera votre script. Quand il vous demande une phrase de passe, appuyez sur ENTER pour accepter un blanc. Vous obtiendrez deux fichiers. Si vous avez suivi les suggestions par défaut, les fichiers seront ~/.ssh/id_dsa et ~/.ssh/id_dsa.pub. Le premier est la clé privée. Le second est la clé publique.
Copiez la clé publique sur le second serveur en utilisant ssh-copy-id user@server2
. Ceci ajoutera la clé publique au fichier authorized_keys de l'utilisateur sur le serveur2.
Vous devriez maintenant être en mesure d'exécuter ssh depuis la première machine et de vous connecter sans mot de passe.
Pour copier les fichiers, scp ou rsync sont parfaits. Cela dépend de ce que vous faites. rsync utilisera ssh par défaut, et donc l'authentification par clé que vous venez de configurer.