.NET SFTP Library

$ 299.95

Securely transfer files and directories to other servers using FTP over SSH encryption.

Testimonial

".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 .NET Framework .NET Core, Mono, Xamarin iOS, Xamarin Mac, Xamarin Android, UWP, Unity, .NET 5, and .NET 6. 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.

 

Features

Feature Description
Secure Transfer files securely using public keys or private keys with passphrases. Both RSA and DSA keys in OpenSSH, Putty Version 2, Putty Version 3, 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.
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 In Excel

Download a free 30 day trial today.

  • Full working version
  • Includes technical support
  • Compatible with Windows, macOS, Linux, iOS, Android and Docker.
  • Compatible with .NET Framework 4.5 and higher, .NET Core 2.0 and higher, Mono 5.4 and higher, Xamarin.iOS 10.14 and higher, Xamarin.Mac 3.8 and higher, Xamarin.Android 8.0 and higher, Universal Windows Platform 10.0.16299 and higher, Unity 2018.1 and higher, .NET 5, and .NET 6.

Download Options

 

Testimonial

"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."

Karen Dapkus
Pinpoint Global Communications

The .NET SFTP Library requires the following system configuration.

  • Compatible with Windows, macOS, Linux, iOS, Android and Docker.
  • Compatible with .NET Framework 4.5 and higher, .NET Core 2.0 and higher, Mono 5.4 and higher, Xamarin.iOS 10.14 and higher, Xamarin.Mac 3.8 and higher, Xamarin.Android 8.0 and higher, Universal Windows Platform 10.0.16299 and higher, Unity 2018.1 and higher, .NET 5, and .NET 6.
//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 = "user@mail.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 = "user@mail.com"; // 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 .NET project type.

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, Windows 10, Windows 11

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?
curve25519-sha256
curve25519-sha256@libssh.org
diffie-hellman-group14-sha1
diffie-hellman-group14-sha256
diffie-hellman-group16-sha512
diffie-hellman-group1-sha1
diffie-hellman-group-exchange-sha1
diffie-hellman-group-exchange-sha256
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521

Q: What Macs are supported?
hmac-md5
hmac-md5-96
hmac-sha1
hmac-sha1-96
hmac-sha2-256
hmac-sha2-256-96
hmac-sha2-512
hmac-sha2-512-96

Q: What Ciphers are supported?
3des-cbc
aes128-cbc
aes128-ctr
aes192-cbc
aes192-ctr
aes256-cbc
aes256-ctr
arcfour
arcfour128
arcfour256
blowfish-cbc
cast128-cbc
twofish128-cbc
twofish192-cbc
twofish256-cbc
twofish-cbc

Q: I am getting the error: Permission denied (publickey). with Ubuntu
Enable RSA. Add these two lines to your /etc/ssh/sshd_config file. Also see this answer
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa

Date Version Description
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.
3/2/2022 8.00 New feature includes compatibility with Azure SFTP and AWS SFTP. New ciphers added: cast128-cbc, twofish128-cbc, twofish192-cbc, twofish256-cbc, twofish-cbc. New key exchanges added: curve25519-sha256, curve25519-sha256@libssh.org, diffie-hellman-group14-sha256, diffie-hellman-group16-sha512, ecdh-sha2-nistp256, ecdh-sha2-nistp384, and ecdh-sha2-nistp521.
5/23/2022 8.15 Compatibility fixes and performance improvement.
5/27/2022 8.18 Fix for issue when FIPS mode is turned on for a Windows Server: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms MD5CryptoServiceProvider
7/28/2022 8.21 Fix Object Reference Error for Xamarin Forms.
8/25/2022 8.24 Fix for automatic reconnect and resume for docker image emberstack/sftp
8/31/2022 8.25 Fix for DirectoryExists when reconnect and resume times out.
1/3/2023 8.26 It now allows keys generated with Windows 11 ssh-keygen.
10/9/2023 9.00 Major version now supporting Putty Version 3 Keys using DSA, RSA, ECDSA, and EdDSA with Passphrases.
10/18/2023 9.12 Fix for defect: This openssh key does not contain the 'openssh-key-v1' format magic header

 

 

Related Products