Software in Review

Ultimate SFTP Component for NET

Developer ComponentPro
Category Software Development
Date Added October 25, 2015
Downloads n/a | 7
License Commercial

Editor's rating + + + + +

If you have found a broken link, please contact us

Get Full Version Home Page

SFTP Component for NET
Reviewed by: Diana on 2018-06-23

Secure .NET SFTP Library for C# and VB.NET

Ultimate SFTP is a 100%-managed .NET class library that adds powerful SSH File Transfer Protocol client capabilities to your applications. It is fast, reliable, and feature-rich. The SFTP component makes it possible to upload, download, create, delete, and manage files and directories with a few lines of code in .NET, Xamarin iOS, Android, UWP, Mac, and .NET CF apps. The client library is written entirely in C#. The package includes a number of C# SFTP clients that let you get started quickly. If you need component for FTP SSL, check out the Ultimate FTP library

.NET SFTP Component's Key Features
• Upload, download, append, delete, rename/move files
• Multi file operations: Upload, download, delete, move...
• Parse listings automatically
• Transfer files simultaneously using multiple threads
• Multi-file operations with file masks and advanced search criterion
• Unified API - use the same for both SFTP and FTP protocols
• 1-way and 2-way files and directories synchronization
• Control bandwidth
• Filezilla-like transfer queue
• Set file permissions

• Support for .NET Full Framework, Xamarin iOS, Mac, Android, Mono, .NET CF, and .NET Core,
Standard (will be available soon)
• Supports all standard-compliant SFTP servers including our SFTP & SSH Server
• Compliant with RFC 959, 1123, 1579, 2228, 3659, 4217, 2246, 4346, 5246 and 5746
• Optimize default component and socket settings for maximum transfer speed
• Optimized for performance and minimized memory footprint
• Load and generate private/public keys (PKCS8, PuTTY and OpenSSH private key formats).
• Detect time difference between the client and server.
• Comprehensive documentation helps you work with SFTP in C# and VB.NET quickly.

Optimized for Transfer Speed and Memory Usage

Optimized for Transfer Speed and Memory Usage
To ensure its implementation, the company:
• Optimize its code following best coding practices for performance
• Use as few resources as possible to minimize memory usage
• Optimize default component and socket settings for maximum transfer speed
As a result, data is transferred at the maximum transfer speed possible. Should you want to limit the
transfer speed, take advantage of bandwidth throttling by setting the MaxDownloadSpeed and
MaxUploadSpeed properties of the Sftp class.

Support for Many Authentication Methods

Support for Many Authentication Methods
In addition to basic username/password authentication method, the SFTP library also supports public key, keyboard-interactive, and GSSAPI, NTLM or Kerberos (with single sign-on as well) authentication methods.

SSH Features Included

Beside having the comprehensive SFTP interface, it also supports other SSH operations such as executing a command on an SSH server, tunneling through it, starting a new SSH terminal session, reusing an SSH connection for another task, generating key pairs for SSH authentication, etc.


The library enables you to build applications with many security features including enabling only the Federal
Information Processing Standards (FIPS) approved encryptions, verifying server key, and generating private/public key pairs. Easy-to-use API for validating server identity and cutomizing/fine-tuning SSH parameters. It supports PKCS8, PuTTY and OpenSSH key formats as well as keys stored on smart cards. It
supports the following security algorithms:
• Encryption Algorithm: AES, RC4, Triple DES, Blowfish, and Twofish
• MAC Algorithms: MD5, SHA1
• Key Exchange Algorithms: Diffie-Hellman, group exchange with SHA-1 and SHA-256


Ultimate SFTP is used by 8K+ developers at thousands of organizations around the world. It is also the core
library in our FREE LionFTP client for Windows which is used and trusted by many users.

Tested against many SFTP Servers

• Bitvise WinSSHD
• CoreFTP Server
• GlobalScape Security Server
• GlobalScape EFT Server
• VanDyke VShell Server
• OpenSSH
• WeOnlyDo wodSFTP
• Tectica
• XFB.Gateway
• And others

What is SFTP?

SFTP (SSH File Transfer Protocol) is an application layer protocol designed for copying and performing other operations with files over a secure and secure connection. The protocol was developed by the IETF as an extension to SSH-2, but SFTP allows for the implementation of other session-level protocols. The protocol assumes that it is running over the established secure channel, that the server has already authenticated the client and that the client ID is available to the protocol. The SFTP server typically uses port 22. SSH File Transfer Protocol is not an FTP protocol running over SSH - it's another, new protocol. Also SFTP is sometimes confused with Simple File Transfer Protocol because of the concurrent
abbreviation "SFTP".

Supported SFTP / SSH Servers

Ultimate SFTP can work with all standard SFTP servers and SFTP / SSH servers that implement SFTP version 3 or 4 and SSH version 2. Below is a list of our recommended SFTP servers:

• Ultimate SFTP Server
• OpenSSH
• GlobalSCAPE
• Tectica SSH Server
• Bitvise WinSSHD
• VanDyke VShell Server
• Core FTP server
• Serv-U
• vsFTP
• CompleteFTP
• Cerberus
• Titan FTP
• WeOnlyDo wodSFTP
• Axway Synchrony Gateway
• freeSSHd
Creating a project using the SFTP component

Let's create a simple WPF application using the SFTP component

Creating a project using the SFTP component

We’ll need to add the necessary links to our project. Therefore, click on "Links" and select "Add link"

Creating a project using the SFTP component

We’ll need to select such links - ComponentPro.Ftp.dll, ComponentPro.Common.dll, ComponentPro.FileSystem.dll, and ComponentPro.Network.dll. Which, I remind, are in the Extensions
Working with the code

You see a section of code that describes the basic methods for working with the SFTP component

// Create a new class instance.
Sftp client = new Sftp();
// Connect to the SFTP server.
// Authenticate.
client.Authenticate("test", "test");
// Upload local file 'c: est.dat' to the default remote directory.
client.UploadFile("c: est.dat", "test.dat");
string defaultDir = client.GetCurrentDirectory();
MessageBox.Show(string.Format("File has been successfully uploaded to '{0}'.",
// Disconnect.
 The first method we'll touch after creating an SFTP object is the method of connecting to the server. It has 2 overloads:
• Accepts only a string representation of the server name
• Accepts only a string representation of the server name and port number

The second method is Authentication. He has as many as 9 overload methods, which, depending on your preferences, take:
• Login and password
• Private keys
• Event Handlers
Let's look at an example where we want to download a file.

Sftp client = new Sftp();
client.Authenticate("test", "test");
// Download remote file '/test.dat' to 'c: est.dat‘
client.DownloadFile("/test.dat", "c: est.dat");

Let’s consider another example where we want to get information about our connection. Some useful information about the current SSH session, such as the server / user name, agreed algorithms or the version of the SFTP protocol, is available when the connection is established or the user is authenticated

// Create a new instance of the Sftp class.
using (Sftp client = new Sftp())
// Get connection information
Console.WriteLine("Server: {0}:{1}, Host key: {2}, Host key algorithm: {3}, Server
Identification: {4}",
client.ServerName, client.ServerPort, client.HostKey,
client.Connection.Cipher.HostKeyAlgorithm, client.Connection.ServerIdentification);
// Authenticate the user
client.Authenticate(userName, password);
Console.WriteLine("Logged in as: {0}", client.UserName);

Conclusions and recommendations

The library is optimized for transfer speed and memory usage.
To ensure its implementation, the company:
• Optimized library code, following the best coding methods for performance
• Used as few resources as possible to minimize memory usage
• Optimized component and socket settings by default for the maximum transfer rate
As a result, the data is transmitted at the maximum possible transmission rate. If you want to limit the data
transfer speed, use the channel bandwidth setting by setting the MaxDownloadSpeed and
MaxUploadSpeed properties of the Sftp class.

If you have found a broken link, please contact us

Get Full Version Home Page

Write your comment
Your Name:
Please enter the word above
into the Control box.
Featured Product
Mobile Device Lockdown. With SureLock, you can allow only desired applications to run on the device and only admin can access the password protected settings to either modify lockdown configurations or exit the lockdown.

Categories Tree
Operating Systems
Recently Added Developers
Products Archive
«        July 2018        »

Copyright © 2008-2017 TheDownloadPlanet, Inc. All Rights Reserved Terms of Use »  Disclaimer »  Privacy Policy »  Our Partners Free software - Pages in the main Google index, Pages in the supplemental Google index and Supplemental Ratio(!less is better!). Click image for more detailed information.