4
votes

I need to transfer a text file to a remote PC (freeSSH) using SFTP and SSH from a Mac host. These two are connected in a local network.

So is there a way to run an SFTP command (with the username and password provided) from inside the Bash script?

I already tried some scripting with expect, but I didn't get any results.

I found a similar post, How to run the sftp command with a password from a Bash script, but it is for Linux. I have a Mac.

3
I had the same requirements a while back and ended up using Perl's Net::SFTP module.glenn jackman

3 Answers

3
votes

You can download and install sshpass on Mac as well. Get the latest version source from this download link

Rest of the steps on using sshpass are there in the linked answer of mine.

2
votes

lftp is great for scripting ftp (and sftp, ftps). And you can install it with brew:

brew install lftp
0
votes

Although @anubhava's answer is correct, it points to the sources only and compiling it without help is hard.

To install sshpass on MacOS using brew easily please use this unofficial package:

brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb

Source: https://gist.github.com/arunoda/7790979