SFTP Implementations

Clients

Free Clients
Client Protocols Type Platform License Notes
OpenSSH sftp 3 Command-line UNIX BSD  
PuTTY psftp 3 Command-line Windows/UNIX BSD-like  
WinSCP 3-5 Graphical Windows GPL  
Konqueror 3 Graphical UNIX GPL  
Gnome vfs layer 3 C Library UNIX LGPL Used by e.g. Nautilus
lftp 3-6 Command-line UNIX GPL  
Paramiko 3 Python Module   LGPL Used by e.g. Bazaar
Cyberduck 3 Graphical OS X GPL  
sshj 1-3 Java API Java Apache License 2.0  
SSHFS 3 Filesystem Linux GPL2 Requires FUSE
Free Wrappers
Client Protocols Type Platform License Notes
Fugu 3 Graphical OS X BSD-like  

SFTP Servers

Free Servers
Server Protocols Platform License Notes
OpenSSH 3 UNIX BSD Widespread in the UNIX world
mod_sftp for ProFTPD 1-6 UNIX GPL
Green End SFTP Server 3-6 UNIX GPL Still under development

Notes

What Is SFTP?

SFTP is a network protocol, usually run as an SSH subsystem, that provides file transfer operations. It is not (at the time of writing) fully standardized but is nonetheless widely implemented. It is not inherently tied to SSH but is usually used that way.

SFTP is not FTP over secure transport.

What's A Wrapper?

A wrapper in this context is a program that does not implement the SFTP protocol itself but just invokes some other client to do the work. While this doesn't make them any less useful for users the distinction is worth making from an implementor's point of view, as there is not much point doing interoperability testing against wrappers if you've already tested the underlying client.

(Most SFTP clients don't implement SSH themselves but call some separate SSH client to do that job. Again from an SSH implementor's point of view this makes them relatively interesting but from an SFTP implementor's or user's point of view the distinction is usually pretty academic.)

Updates

Please contact me if you know of any implementations not listed above. Please include:

See Also

RJK | Contents