.NET SFTP Library
Securely transfer files and directories to other servers using FTP over SSH encryption.
".NET SFTP saved our bacon when were able to develop an automated synchronization agent for data exchange with a major financial institution in a weekend, with a must-not-miss deadline looming."
Michael Hoffmann, AHPRA
Do you want the best in security, reliability, and performance for SSH? Buy the .NET SFTP Library from Kellerman Software. The component supports public key authentication and private key authentication using passphrases. OpenSSH, Putty, and IETF formats can be used. Proxy servers are also supported. The .NET SFTP Library excels at handling intermittent network connections. The .NET SFTP Library is the only component available where you can unplug the cable in the middle of a transfer, plug it back in, and it resumes automatically where it left off. The .NET SFTP Library is the only one that can calculate the time difference between two servers to perform an ultra fast directory tree synchronization. Competitor libraries use the file size, which could actually miss updated files with the same size. It supports all .NET project types including ASP.NET MVC, WPF, Webforms, Winforms, WCF, Windows Services, and Web Services. It can be used with any .NET language including VB.NET and C#. Why pay more for another SFTP library that is less reliable and has less features? Download the full list of features.
We also have a library to perform FTP over SSL. An FTP Adapter is included that allows you to use both components from the same interface. Use the discount code FTPANDSFTP to get a discount when purchasing both.
While it can be purchased separately, this product is also included in the Gold Suite. Gold Suite subscribers receive all product updates and all new products as part of a yearly subscription. It is the best value in the industry.
|Secure||Transfer files securely using public keys or private keys with passphrases. Both RSA and DSA keys in OpenSSH, Putty, or IETF format are supported. MAC Integrity checking is automatically performed. Supports these encryption algorithms, 3DES, AES, ARC4, Twofish, Blowfish, CAST, and Serpent. FIPS 140-2 Compliant Mode for communicating with department of defense servers.|
|Easy to Use||The .NET SFTP component has a full GUI SFTP client demo is included. Source code is provided in both VB.NET and in C#.|
|Asynchronous / Synchronous Operation||Files and entire directories can be transfered asynchronously or synchronously. Upload/download directories and files in parallel using multiple threads.|
|Rich Events||Detailed progress and completion events for asynchronous operations.|
|Proxy Support||Supports HTTP, Socks 4, Socks 4a and Socks 5 proxy servers.|
|Logging||Option to log SFTP activity to a file or memory stream.|
|Compression||ZLIB and Open ZLIB Compression can be used to increase the performance transferring.|
|Delete Subdirectories||Delete all files and subdirectories within an SFTP directory. It is also possible to specify a wildcard pattern for deleting files.|
|Directory Synchronization||Entire directory structures can be synchronized. Kellerman SFTP only transfers files that have changed, resulting in higher throughput.|
|Wildcards||Wildcard patterns are supported for specifying files to transfer. It is also possible to specify the files to transfer by date range, file size or regular expression.|
|Resume Transfer||Resume upload/download transfers by specifying a byte offset. Automatically determining the byte offset with ResumeUploadFile and ResumeDownloadFile. After an aborted asynchronous operation, Retry the operation even days later.|
|SSH Operations||Perform standard SSH operations including SCP, Shell, and Port Forwarding (Tunneling).|
|Documentation||Industry standard formatted help and an easy to use demo is included.|
|100% Managed Code||100% managed code written in C#. No external dependencies or libraries are required except for the a minimum of .NET Framework 3.5, .NET Framework 4.x, or .NET Standard 2.0, or .NET Core 2.0, or Mono 5.4, or Xamarin.IOS 10.14, or Xamarin.Mac 3.8, or Xamarin.Android 8.0, or UWP 10.0.16299 or Unity 2018.1.|
|Royalty Free Distribution||Include with any .NET project royalty free.|
|1 Year Free Upgrades||Purchase today and all upgrades are free for the next year.|
|60 Day Money Back Guarantee||At Kellerman Software, we want you to be totally satisfied with your purchase. Receive a refund within 60 days when ordering from KellermanSoftware.com. Source code versions are non-refundable due to their nature.|
|Lifetime Support||Lifetime E-mail technical support is included.|
How does the .NET SFTP Library stack up against the competition?
Download a free 30 day trial today.
- Full working version
- Includes technical support
- Works with .NET 2.0 and higher
- Download Full Installer (Includes Help File)
- Download Zip No Installer (Includes Help File)
- Download NuGet Package (No Help File)
"At Pinpoint Global Communications we have been using the Kellerman FTP and SFTP products, with great success, for over a year. It was very easy to integrate into our code base, and development for data transfer is made much simpler and more reliable using these products. Kellerman’s support was responsive and fixed an inconsistency we noticed between the FTP and SFTP product right away. Overall we are very pleased with the reliability of the product and the support behind it."
Pinpoint Global Communications
The .NET SFTP Library requires the following system configuration.
- Windows 98, Windows 98 SE, Windows 2000 with SP4, Windows ME, Windows XP with SP2, Windows 7, Windows 8, Windows 10, Windows 2000 Server with SP4, Windows Server 2003, Windows Server 2008, Windows Server 2012, or Windows Server 2016 or iOS, or Android.
- Mimimum of .NET Framework 3.5, .NET Framework 4.x, or .NET Standard 2.0, or .NET Core 2.0, or Mono 5.4, or Xamarin.IOS 10.14, or Xamarin.Mac 3.8, or Xamarin.Android 8.0, or UWP 10.0.16299 or Unity 2018.1.
//Example of connecting with public key authentication then uploading a file SFTP sftp = new SFTP(); //Trial Mode //SFTP sftp = new SFTP("place user name here", "place license key here"); // set the name of the SSH server( its URL ) sftp.HostAddress = "some.sftp.server.com"; // replace with your SFTP server sftp.UserName = "anonymous"; // replace with your user name sftp.Password = "email@example.com"; // replace with your password sftp.Connect(); sftp.UploadFile("c:\\uploadfile1.txt", "uploadfile1.txt"); sftp.Disconnect(); //Example of connecting with public/private key authentication with a passphrase then uploading a file SFTP sftp = new SFTP(); //Trial Mode //SFTP sftp = new SFTP("place user name here", "place license key here"); // set the name of the SSH server( its URL ) sftp.HostAddress = "some.sftp.server.com"; // replace with your SFTP server sftp.UserName = "anonymous"; // replace with your user name sftp.Password = "firstname.lastname@example.org"; // replace with your password sftp.SshKeyFile = "c:\\privatekey"; sftp.SshPassphrase = "secret"; sftp.Connect(); sftp.UploadFile("c:\\uploadfile1.txt", "uploadfile1.txt"); sftp.Disconnect();
Q: How do I use my license key?
A: SFTP sftp = new SFTP("my user name","my license key");
Q: I lost my license key how do I retrieve it?
A: Go to your account
Q: I lost my software how do I retrieve it?
A: Go to downloads
Q: Where can I download the latest version of my software?
A: Click the download tab.
Q: How does the licensing work?
A: Each developer that uses the SFTP library must have a license. You may distribute your application to end users royalty free or use it on an unlimited number of servers. A site license is for all the developers in a single building. An enterprise license would be for entire company.
Q: Does the SFTP libary work with ASP.NET?
A: Yes, the SFTP libary works with ASP.NET, Winforms, Web Services, WPF, ASP.NET Core and Windows Services
Q: I want to integrate the objects into my web based backend, is this possible?
A: Yes, you can use the SFTP object with an ASP.NET back end, provided the SFTP ports are allowed through by the web server firewalls.
Q: My company has 6 servers and 20 websites to synchronize, how does the licensing work? If we buy a
license can I distribute it throughout all of our company websites?
A: The SFTP .NET component is licensed on a per developer basis. If you are the only developer you may certainly use it on all 20 of your websites.
Q: Our current SFTP .NET component has a file size limit of 2GB. What is the file size limit for
Kellerman .NET SFTP?
A: The file size limit is 9ZB ( Zetabytes).
Q: What happens when the trial expires?
A: An exception is thrown, indicating that the trial is expired.
Q: Is Kellerman SFTP compatible with .NET 4.0 and .NET 4.5.1?
A: Kellerman SFTP is compatible with .NET 2.0 and higher.
Q: Is Kellerman SFTP compatible with Windows Server 2008?
A: Kellerman SFTP is compatible with Windows 98SE, Windows ME, Windows XP, Windows 2000, Windows Server 2000, Windows Server 2003, Windows Server 2008, Windows Server 2012, Windows Server 2016, Windows Vista, Windows 7, and Windows 8
Q: Is Kellerman SFTP thread safe?
A: An instance of Kellerman SFTP is required for each thread. Individual instances are thread safe.
Q: Is the directory synchronization feature recursive?
A: Yes, all directories, subdirectories, and files are synchronized.
Q: I am getting the error "Could not resolve host name" how do I fix this?
A: The ASPNET account may not have access to your DNS server. Try using either the internal IP Address or external IP address of the SFTP Server.
Q:I am getting the exception AUTH FAIL. What do I do?
A: Try connecting with Filezilla on the same PC. Verify the user name and password are correct. Some financial institutions require a private key and a blank password. Contact the owner of the SFTP server, ensure your IP Address is allowed through for your PC or Server.
Q: What key exchanges are supported?
Q: What Macs are supported?
Q: What Ciphers are supported?
|4/20/2010||1.0||Initial release. Securely transfer files over SSH using public and private key encryption with passphrases.|
|5/3/2010||1.08||.NET SFTP Library now has a Framework 4.0 build for Visual Studio 2010.|
|11/20/2010||1.20||This update includes a fix to handle some SFTP Servers responding with a non-standard response for a change directory. Also, by customer request the FTPException has been made serializable.|
|12/30/2010||1.24||The .NET SFTP Component now allows blank passwords.|
|2/24/2011||1.29||By customer request these new features were added: file and directory permissions are now included when getting the directory listing, and ability to set the file permissions.|
|4/15/2011||1.36||This update fixes an issue when connecting with blank passwords and AES 128bit Putty format private keys. It also fixes an upload directory issue with .NET Framework 4.0 when the current directory is different than the destination directory.|
|6/27/2011||1.41||This update fixes a compatibility issue with Microsoft Sharepoint.|
|7/26/2011||1.42||This update fixes an install error that occurred when installing right after the .NET FTP Library.|
|8/1/2011||1.44||This update improves the performance of getting directory listings by wildcard pattern when there are thousands of files. It also fixes an issue when uploading to a directory that does not exist.|
|11/30/2011||1.47||Several features have been added by customer request. New feature; Synchronize Upload and with wildcards. New feature; Any upload directory, download directory, or synchronize operation now returns a list of the files that were actually transferred. The complete event for asynchronous directory operations also have a list of the files transferred.|
|1/31/2012||1.50||The new version includes a timeout property and a fix for a compatibility issue when connecting to servers that have no access to get a directory listing.|
|3/28/2012||1.53||By customer request, private keys can now be specified using a memory stream.|
|4/10/2012||1.54||By customer request, upload synchronization now has the ability to skip local directories that do not have read access.|
|8/17/2012||2.0||performance has been increased. The BufferSize can now be set. The frequently requested feature has been implemented; SynchronizeUpload, SynchronizeUploadWithDelete with the ability to exclude files. Now it is possible to synchronize everything except for the web.config or other settings files. This is very useful for synchronizing web farms, or environments such as DEV, QA, and PROD. Files can be excluded by file name, directory name, or wildcard.|
|9/21/2012||2.01||Defect fix, when a server drops out right after the last byte has been transferred.|
|9/24/2012||2.02||Fixes object reference error when connecting.|
|10/1/2012||2.04||By customer request, MoveFile has been implemented.|
|10/23/2012||2.05||This update fixes the "Inheritance security rules violated" issue and a SFTP server compatibility issue.|
|11/27/2012||2.10||This update fixes issues including, uploading empty files, resume progress percentage, and set permissions issue.|
|1/2/2013||3.00||New features include FIPS 140-2 compliant mode, ZLib Compression, Open ZLib Compression, generate Putty and IETF keys, Port Forwarding, SCP, ARC4 encryption, Twofish encryption, Blowfish encryption, Serpent Encryption and much more.|
|2/7/2013||3.01||This update fixes a compatibility issue with EDT Complete FTP Server's Non Standard Response Order.|
|3/18/2013||3.02||By customer request, passwords are now masked in the response property of the exception. Combined paths have also been enhanced.|
|4/13/2013||3.03||This release includes several customer requested features. The GetAllFiles feature gets a recursive list of files in a directory and all subdirectories. ToString of some classes have been added. A separate error event handler has been added.|
|4/29/2013||3.05||This release includes a compatibility fix for Windows CE SFTP Server.|
|7/1/2013||3.10||The FTP Adapter has been updated to handle the new version of the SSH key generation.|
|8/12/2013||3.12||Changes; connection problem fixed for Barnes and Noble Booksellers SFTP Server, fix for multiple threads logging on a memory stream, easier methods for SCP were added, and nicer local path verification.|
|9/17/2013||3.18||There are several fixes in this release. There was a race condition in the demo that occured when performing an async upload and immediately performing an async download. Invalid private key file passphrases now property throws exceptions. Fix for a compatibliity issue when connecting to Credit Suisse bank.|
|10/15/2013||3.19||This update detects special forced disconnects from remote servers.|
|10/24/2013||3.20||This update fixes an issue with synchronizing empty folders.|
|11/29/2013||3.21||New build for .NET Framework 4.5 and 4.5.1.|
|1/11/2014||3.22||When transfering single files, the file will now appear in the FilesTransferred property of the TransferCompletedEvent.|
|3/23/2014||3.26||Fix for zero window issue with files over 6.5 GB and some servers. Fix for thread safe issue under windows service. New feature to exclude files with Synchronize Download With Delete Async.|
|7/6/2014||3.28||Fix for demo for creating a directory while in the middle of creating a directory.|
|10/19/2014||4.0||Major release. It is now CLS Compliant. It includes the ability to synchronize directories on two different SFTP servers without the use of temporary files using Site To Site Synchronize Directory. It can upload large files from one SFTP site to another without the use of a temporary file using Site To Site Transfer File. It can create a directory and sub directories with a single line of code. It removes the dependency on System.Web so that the .NET Framework client profile can be used. There is a new cancel event that is fired when cancelling is complete. Fix for C++ Windows Service Compatibility. Fix for CreateDirectory returning true when directory already exists.|
|1/7/2015||4.05||Performance improvement, remove of file exists check when not a restart. Compatibility fix with BouncyCastle.|
|3/14/2015||4.07||Fix for a licensing issue when running in a Windows Service.|
|6/22/2015||5.00||Fix for System.Security.Cryptography.CryptographicException: Bad Data exception with new DSA key formats that some SFTP Servers are using. Now compatible with Solar Winds SFTP Server. New feature, ability to view the server fingerprint. The Connect() method now returns the fingerprint.|
|12/15/2015||5.03||New feature, SHA2 compatibility. Now supports all these MACS: hmac-sha2-256, hmac-sha2-256-96, hmac-sha2-512, hmac-sha2-512-96, hmac-md5, hmac-sha1, and hmac-sha1-96. Defect fix for the return value for rename directory/file. Defect fix for downloading when a file does not exist.|
|2/8/2016||5.04||New features, ability to synchronize to the root SFTP directory. The .NET SFTP Library remains 100% managed code but can now also be used with COM applications.|
|2/24/2016||5.05||Builds for .NET Framework 4.5.2 and 4.6. The library remains 100% managed code but is now compatible with COM.|
|4/3/2016||5.07||Fix for connecting to Ubuntu servers with 2048 bit keys.|
|10/22/2016||5.13||This version fixes a compatibility issue with SQL CLR table functions.|
|1/29/2017||5.15||Fix for file corruption issue specific to SHA2 and Titan SFTP Server.|
|4/27/2017||5.16||Bug fix when connecting with a Putty formatted key, with a non blank pass phrase and a blank password.|
|6/11/2017||5.18||Bug fixes. Site to site directory synchronization compatibility issue with some SFTP servers. DirectoryExists issue when issuing the same command multiple times.|
|8/5/2017||6.00||Major release. Now compatible with .NET Core 1.1 or higher.|
|11/5/2017||6.05||This release fixes a path error when using a PPK key for .NET Core only.|
|10/25/2018||6.12||Fix for path to the demo.|
|9/14/2019||6.13||Builds for .NET Framework 4.7, 4.7.1, 4.7.2, and 4.8.|
|6/30/2020||7.00||New features, ASCII Mode, FileTransferCompleteEventHandler, and SynchronizationMode. New multi-threaded parallel upload/download of directories and files. Now compatible with .NET Standard 2.0, Mono 5.4, Xamarin.IOS 10.14, Xamarin.Mac 3.8, Xamarin.Android 8.0, UWP 10.0.16299 and Unity 2018.1|
|12/18/2020||7.12||Fix for BeginInvoke Platform Not Supported for .NET Standard Version.|