I know, this is not the recommended way to do this. But, I do not have another choice:

I've got to set up a cron job that will regularly upload a file to an external SFTP Server (no FTP available, and I do only have a username/password for it but no key.)

Still, I need to set up a cron that will regularly connect to that sftp and upload a file.

sftp <<EOF
put filename

therefore will not work, because sftp asks for the password, before STDIN is evaluated.

What can I do, to pass the Password to sftp?

Again: I am aware of the potential security risk, but I really do not have any choice here, and the server from which the file is uploaded is protected rather well.


Point the SSH_ASKPASS environment variable to a custom program that prints out the password on stdout.


Another option would be to use curl:

curl -u user:password -T file.tar sftp://example.com/home/user/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.