Posted By: Anonymous
I need to transfer a log file to a remote host using sftp from a Linux host. I have been provided credentials for the same from my operations group. However, since I don’t have control over other host, I cannot generate and share RSA keys with the other host.
So is there a way to run the
sftp command (with the username/password provided) from inside the Bash script through a cron job?
I found a similar Stack Overflow question, Specify password to sftp in a Bash script, but there was no satisfactory answer to my problem.
You have a few options other than using public key authentication:
- Use keychain
- Use sshpass (less secured but probably that meets your requirement)
- Use expect (least secured and more coding needed)
If you decide to give sshpass a chance here is a working script snippet to do so:
export SSHPASS=your-password-here sshpass -e sftp -oBatchMode=no -b - [email protected] << ! cd incoming put your-log-file.log bye !