pass mot de passe pour sftp dans un script bash

Je voudrais automatiser un script bash qui se connecte au serveur en utilisant le protocole sftp et un transfert de fichier. J'ai le mot de passe, et d'abord, j'ai essayé pour ce

sftp $acc@$host << EOF
<passwd_here>
cd $dir
get $file
quit
EOF

mais qu'il est encore invité pour un mot de passe, et j'ai eu à les saisir manuellement à l'invite de commandes.

Après recherche DONC, j'ai trouvé ce post qui a une solution avec expect, que j'ai essayé et j'ai eu l'erreur suivante:

Script:

sftp -b cmdfile.txt $acc@$host
expect "Password:"
send "<passwd>\n";
interact

Erreur:

Permission denied (publickey,keyboard-interactive).

cmdfile.txt

cd $dir
get $file
quit

S'il vous plaît laissez-moi savoir, Comment faire pour se connecter en utilisant le mot de passe dans un script bash?

  • Mieux expect scripts peut être écrit mais je dirais obtenir sshpass sur votre hôte client. sshpass est plus sécurisé et moins sujette aux erreurs que sftp.
InformationsquelleAutor mtk | 2012-09-20