SSH file transfer protocol
|
In computing, the 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 to provide secure file transfer.
Compared to the earlier SCP protocol, which allows only file transfers, the SFTP protocol allows for a range of operations on remote files—it is more like a remote file system protocol. An SFTP client's extra capabilities compared to an SCP client include resuming interrupted transfers, directory listings, and remote file removal. For the same reason it is reasonable to implement a GUI SFTP client, but not a GUI SCP client.
SFTP attempts to be more platform-independent than SCP; for instance, with SCP, the expansion of wildcards specified by the client was up to the server, whereas SFTP's design avoids this problem. While SCP was mostly implemented on Unix platforms only, there now exist SFTP servers for most platforms.
Some implementations of the scp program actually use the SFTP protocol to perform file transfers.
A common misconception is that SFTP is simply FTP run over SSH (for which see secure FTP); in fact it is a new protocol designed from the ground up by the IETF SECSH working group. The protocol itself does not provide authentication; it expects the underlying protocol to secure this. SFTP is most often associated with SSH protocol version 2 implementations, having been designed by the same working group. However, it is possible to run it over SSH-1 (and some implementations support this) or other data streams.
Contents |
Standardization
The protocol is not yet an Internet Standard. The latest specification is Internet Draft draft-ietf-secsh-filexfer-09.txt, which defines version 6 of the protocol. Currently the most widely used version is 3, implemented by the popular OpenSSH SFTP server. Many Microsoft Windows-based SFTP implementations use version 4 of the protocol, which removed some bindings to the Unix platform.
SFTP program
The term SFTP can also refer to Secure file transfer program, a command-line program that implements the client part of this protocol, such as that supplied with OpenSSH.
The sftp program provides an interactive interface similar to that of traditional ftp clients.
References
- draft-ietf-secsh-filexfer (http://tools.ietf.org/wg/secsh/draft-ietf-secsh-filexfer/) Internet Draft
- Comparison with SCP (http://winscp.net/eng/docs/protocols#protocol_comparison)