Is Fantastic, Free and even works with powershell
Also has a C# Nuget if you are coding inclined we use this to automate downloading from our bank for ACH transfers and such.
SessionOptions sessionOptions = new SessionOptions {
Protocol = Protocol.Sftp,
HostName = o.Host,
UserName = o.User,
SshHostKeyFingerprint = o.Fingerprint,
SshPrivateKeyPath = Settings.Default.PrivateKeyPath,
PrivateKeyPassphrase = Settings.Default.Passphrase,
};
using(Session session = new Session()) {
// Connect
session.Open(sessionOptions);
TransferOptions to = new TransferOptions();
to.PreserveTimestamp = false;
to.TransferMode = TransferMode.Automatic;
foreach(var file in session.ListDirectory(Settings.Default.RemoteDownloadPath).Files.ToList())
{
if (!file.IsDirectory) {
var teArgs = session.GetFileToDirectory(file.FullName, outgoingDirectory, true, to); //True parameter deletes the file after download
}
}
}