SSH FILE TRANSFER PROTOCOL
In computing, the 'SSH File Transfer Protocol' or 'SFTP' 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, but is intended to be usable with other protocols as well.
Compared to the earlier, deprecated, 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 most frequently implemented on Unix platforms, there exist SFTP servers for most platforms.
A common misconception is that SFTP is simply FTP run over SSH; in fact it is a new protocol designed from the ground up by the IETF SECSH working group. It is sometimes confused with Simple File Transfer Protocol.
The protocol itself does not provide authentication and security; it expects the underlying protocol to secure this. SFTP is most often used as subsystem of 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. Running SFTP server over SSH-1 is not platform independent as SSH-1 does not support the concept of subsystems. An SFTP client willing to connect to an SSH-1 server needs to know the path to the SFTP server binary on the server side.
The Secure Internet Live Conferencing (SILC) protocol defines the SFTP as its default file transfer protocol. In SILC the SFTP data is not protected with SSH but SILC's secure packet protocol is used to encapsulate the SFTP data into SILC packet and to deliver it peer-to-peer. This is possible as SFTP is designed protocol independent.
For uploads, the transferred files may be associated with their basic attributes, such as timestamps. This is an advantage over the common FTP protocol, which does not have provision for uploads to include the original date/timestamp attribute.
The protocol is not yet an Internet standard. The latest specification is an expired Internet Draft, 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 lessened its ties with the Unix platform.
The Internet Engineering Task Force (IETF) "Secsh Status Pages" search tool contains links to all versions of the Internet draft-ietf-secsh-filexfer which describes this protocol.
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.
Some implementations of the scp ''program'' actually use the SFTP ''protocol'' to perform file transfers; however, some such implementations are still able to fallback to the SCP protocol if the server does not provide SFTP service.
★ IETF Secsh Status Pages
★ Comparison with SCP
★ FTPS
★ FISH
★ Comparison of FTP clients (including SFTP)
★ List of SFTP servers
★ SSHFS - Mounting remote filesystem using SFTP and SSH
★ WinSCP - Free Windows client with SFTP capability
| Contents |
| Capabilities |
| Standardization |
| SFTP client |
| References |
| See also |
Capabilities
Compared to the earlier, deprecated, 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 most frequently implemented on Unix platforms, there exist SFTP servers for most platforms.
A common misconception is that SFTP is simply FTP run over SSH; in fact it is a new protocol designed from the ground up by the IETF SECSH working group. It is sometimes confused with Simple File Transfer Protocol.
The protocol itself does not provide authentication and security; it expects the underlying protocol to secure this. SFTP is most often used as subsystem of 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. Running SFTP server over SSH-1 is not platform independent as SSH-1 does not support the concept of subsystems. An SFTP client willing to connect to an SSH-1 server needs to know the path to the SFTP server binary on the server side.
The Secure Internet Live Conferencing (SILC) protocol defines the SFTP as its default file transfer protocol. In SILC the SFTP data is not protected with SSH but SILC's secure packet protocol is used to encapsulate the SFTP data into SILC packet and to deliver it peer-to-peer. This is possible as SFTP is designed protocol independent.
For uploads, the transferred files may be associated with their basic attributes, such as timestamps. This is an advantage over the common FTP protocol, which does not have provision for uploads to include the original date/timestamp attribute.
Standardization
The protocol is not yet an Internet standard. The latest specification is an expired Internet Draft, 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 lessened its ties with the Unix platform.
The Internet Engineering Task Force (IETF) "Secsh Status Pages" search tool contains links to all versions of the Internet draft-ietf-secsh-filexfer which describes this protocol.
SFTP client
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.
Some implementations of the scp ''program'' actually use the SFTP ''protocol'' to perform file transfers; however, some such implementations are still able to fallback to the SCP protocol if the server does not provide SFTP service.
References
★ IETF Secsh Status Pages
★ Comparison with SCP
See also
★ FTPS
★ FISH
★ Comparison of FTP clients (including SFTP)
★ List of SFTP servers
★ SSHFS - Mounting remote filesystem using SFTP and SSH
★ WinSCP - Free Windows client with SFTP capability
This article provided by Wikipedia. To edit the contents of this article, click here for original source.
psst.. try this: add to faves

العربية
中国
Français
Deutsch
Ελληνική
हिन्दी
Italiano
日本語
Português
Русский
Español