The SFTP Plugin provides file and directory synchronization between the workspace and a remote location using the SSH Sftp protocol. The connection to the server is encrypted, so neither your password nor your data can be read if it is intercepted. This helps to protect against crackers who would use your password to gain access to the server on which you store your data. This plugin also has less problems with firewalls and NAT routers than the FTP synchronization plugin.
The Sftp protocol is not yet widely known, but it is widely implemented in both ssh servers and clients. OpenSSH has provided it for a long time, and many others as well. To find out if your ssh client has an sftp client, try the command sftp hostname on a Unix command line. On windows, you can use the Cygwin tools which contain the OpenSSH client. The interface of the OpenSSH sftp client program is similar to the ftp client program, but the communication with the server is done using a modern protocol which is more like the NFS protocol than like the FTP protocol. This protocol runs on top of an encrypted SSH connection, and so it is very secure.
The most recent version of the sftp protocol is available from IETF:
The protocol version for this specification is 4. OpenSSH currently implements a slightly older version
(protocol version 3) that is specified in
draft-ietf-secsh-filexfer-01.txt. This document
is not easily available from the web.
This plugin has only been tested against version 3 of the protocol, since I don't have access to any
version 4 sftp server, but the plugin it should work with version 4 servers as well.
This plugin only implements the SFTP protocol layer, not the SSH encryption layer. Instead this plugin uses the SSH implementation that is built into Eclipse as part of the CVS Team Provider. This implementation only support SSH protocol version 1. Most servers support both version 1 and 2, but more and more servers are discontinuing support for version 1. The newest version of the SFTP plugin (versions 1.2.0 and higher) also support SSH2, by using the J2SSH library from the SshTools project.