A client wants us to push data files to them on a daily basis using SFTP (FTP over SSH). We are a 100% Microsoft shop with no Linux admins on staff. I am looking for recommendations on how to do achieve this. I have seen different applications for automating the sending of files via SFTP, but I don't know if they are a good approach or not.
What have you found to be the easiest way to deal with this in a Microsoft Environment?
I recommend PSFTP as the client of choice for transfering this data to the remote destination. http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Their products are rock solid and have become quite popular from the success of PUTTY their SSH client.
You just need an SFTP client and a way to script and schedule it.
That's the simple way, using all native tools, and only one third-party component. The tricky bits will be :
You could conceivably get your script running a loop and install it as a service, so you don't have to worry about multiple jobs trying to grab the same files.
I have been using this Open Source/ free .Net component to deliver files to SFTP without any issues for the last 2 years.
If you reference the assembly files (Tamir.SharpSSH.dll + 2), in few lines of code you can do SFTP..
You can develop a windows application or a windows service to deliver fules
Download Assembly Here:
http://www.tamirgal.com/blog/page/SharpSSH.aspx
Description: SharpSSH is a pure .NET implementation of the SSH2 client protocol suite. It provides an API for communication with SSH servers and can be integrated into any .NET application. The library is a C# port of the JSch project from JCraft Inc. and is released under BSD style license.
SharpSSH allows you to read/write data and transfer files over SSH channels using an API similar to JSch's API. In addition, it provides some additional wrapper classes which offer even simpler abstraction for SSH communication.
If you are looking for a scriptable and automatable SFTP client that not only runs on Windows, but it is designed with Windows in mind (it does not mimic Linux-style shell-like scripts, but it uses high level object-oriented languages like JavaScript) you may want to take a look at Syncplify.me FTP Script.