7

I am looking for a SFTP Client which is free. Also it should have a free dll using which I can write code to upload and download file in C# (.NET framework).

For example following code is not free, it has 30 days free evaluation, I want it for free,

Chilkat.SFtp sftp = new Chilkat.SFtp();

bool success;
success = sftp.UnlockComponent("Anything for 30-day trial");

sftp.ConnectTimeoutMs = 5000;
sftp.IdleTimeoutMs = 10000;

int port;
string hostname;
hostname = "www.my-ssh-server.com";
port = 22;
success = sftp.Connect(hostname,port);

success = sftp.AuthenticatePw("myLogin","myPassword");

success = sftp.InitializeSftp();

string handle;
handle = sftp.OpenFile("hamlet.xml","readOnly","openExisting");

success = sftp.DownloadFile(handle,"c:/temp/hamlet.xml");

success = sftp.CloseHandle(handle);
MessageBox.Show("Success.");
ChrisF
  • 134,786
  • 31
  • 255
  • 325
user358591
  • 432
  • 3
  • 5
  • 15

3 Answers3

6

I'm currently using SharpSSH which is free and has a very nice easy interface. SharpSSH sourcefoge page. It has all the authentication functionality that you mentioned.

You can do this in C#:

var sftp = new Sftp(hostName, userName, password);
sftp.Connect(port);
sftp.Put(putFilePath, toDir);
sftp.Get(getFilePath);
Nobody
  • 4,731
  • 7
  • 36
  • 65
4

Would recomend to take a look at https://nuget.org/packages/SSH.NET

I think it's more up to date than sharp.ssh, works good for transmitting files through sftp.

2

You might want to take a look at WinSCP. Although it is not a library, you can write scripts to drive it and the link is to a nice tutorial that shows you how to do it in both C# and Visual Basic.

J Edward Ellis
  • 1,368
  • 2
  • 12
  • 21
  • 1
    Nowdays WinSCP has [WinSCP .NET assembly](http://winscp.net/eng/docs/library) as a .NET wrapper around WinSCP scripting interface. – Martin Prikryl Nov 05 '13 at 16:23