FTP and SFTP are two of the most common file transfer protocols used to move files between computers. FTP is more commonly used because it is faster than SFTP. FTP also supports multiple connections, which makes it easier to share files with other people.
When you are in the process of setting up remote file transfer capabilities for your employees, you want things to be as simple and secure as possible. With that in mind, which is better, FTPS or SFTP? Today’s SuperUser Q&A post has the answers for a curious reader’s question.
Today’s Question & Answer session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a community-driven grouping of Q&A web sites.
Screenshot courtesy of kojihachisu (Flickr).
The Question
SuperUser reader user334875 wants to know what the difference is between FTPS and SFTP, and which one is better:
What is the difference between the two and which one is better?
The Answer
SuperUser contributors NuTTyX and Vdub have the answer for us. First up, NuTTyX:
Followed by the answer from Vdub:
FTPS is FTP with SSL for security. It uses a control channel and opens new connections for the data transfer. As it uses SSL, it requires a certificate.
SFTP (SSH File Transfer Protocol/Secure File Transfer Protocol) was designed as an extension of SSH to provide file transfer capability, so it usually uses only the SSH port for both data and control.
In most SSH server installations you will have SFTP support, but FTPS would need the additional configuration of a supported FTP server.
Have something to add to the explanation? Sound off in the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.
Pros:
Widely known and used The communication can be read and understood by a human Provides services for server-to-server file transfer SSL/TLS has good authentication mechanisms (X. 509 certificate features) FTP and SSL/TLS support is built into many internet communications frameworks
Cons:
Does not have a uniform directory listing format Requires a secondary DATA channel, which makes it hard to use behind firewalls Does not define a standard for file name character sets (encodings) Not all FTP servers support SSL/TLS Does not have a standard way to get and change file or directory attributes
SFTP (SSH File Transfer Protocol) is a network protocol that provides file transfer and manipulation functionality over any reliable data stream. It is typically used with the SSH-2 protocol (TCP port 22) to provide secure file transfer, but is intended to be usable with other protocols as well.
Pros:
Has a good standards background which strictly defines most (if not all) aspects of operations Has only one connection (no need for a DATA connection) The connection is always secured The directory listing is uniform and machine-readable The protocol includes operations for permission and attribute manipulation, file locking, and more functionality
Cons:
The communication is binary and can not be logged “as is” for human reading SSH keys are harder to manage and validate The standards define certain things as optional or recommended, which leads to certain compatibility problems between different software titles from different vendors. No server-to-server copy and recursive directory removal operations No built-in SSH/SFTP support in VCL and . NET frameworks