Il est préférable de configurer SSH pour utiliser l'authentification basée sur une clé plutôt que d'essayer de comprendre comment envoyer du texte au processus de connexion avec quelque chose comme expect
.
Jetez un œil à :
https://help.ubuntu.com/community/SSH/OpenSSH/Keys
Donc, essentiellement, exécutez ssh-keygen -t dsa
sur la machine qui exécutera votre script. Lorsqu'on vous demande une passphrase, appuyez sur ENTRÉE pour accepter un espace vide. 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 deuxième serveur en utilisant ssh-copy-id user@server2
. Cela ajoutera la clé publique au fichier authorized_keys de l'utilisateur sur server2.
Maintenant, vous devriez pouvoir exécuter SSH depuis la première machine et vous connecter sans mot de passe.
Pour copier les fichiers, scp ou rsync sont bien. Cela dépend de ce que vous faites. rsync utilisera SSH par défaut, donc utilisera l'authentification basée sur une clé que vous venez de configurer.
2 votes
how2s.org/index.php/…
1 votes
Aussi, répondu sur StackOverflow
1 votes
serverfault.com/questions/132405/…
5 votes
C'est quelque chose que je déteste vraiment dans de nombreuses communautés en ligne; Ils vous diront que vous faites quelque chose de stupide et ensuite ne vous donneront pas la réponse.