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.
Vous devez vous connecter pour publier un commentaire.
Avec scp/sftp, vous devez utiliser la clé d'authentification. La clé publique de l'utilisateur que vous souhaitez authentifier les copier dans ~/.ssh/authorized_keys sur le serveur, dans le répertoire home de l'utilisateur sur lequel vous souhaitez vous connecter. Le stockage de mot de passe en texte clair sur le côté client n'est pas une bonne pratique, vous le savez 🙂 de Cette façon, vous "solution de contournement" problème de lecture de mot de passe à partir de l'invite de trop.
Veuillez essayer les étapes ci-dessous
lftp
avant, ceci est très utile pour ceux d'entre nous qui n'ont pas la possibilité de configurer des clés SSH. Merci.Oui en fonction de clé d'authentification est le chemin à parcourir.
Vérifier ici pour une certaine direction.