- Client and server support
- Supports asynchronous connections
- Supports SFTP, SCP and OpenSSH Extensions
- Thread safety when using different sessions at same time
- Supports Linux, UNIX, BSD, Solaris, OS/2 and Windows
- Full API documentation and a tutorial
- SSH2 and SSH1 protocol support
- Based on poll(2), WSAPoll() on Windows Vista+ or a poll(2)-emulation.
- Large file system support (files bigger than 4GB)
- Supports OpenSSL and GCrypt
- Support for AES-128, AES-192, AES-256, Blowfish, 3DES in CBC mode, and AES in CTR mode
- POSIX-like SFTP (Secure File Transfer) implementation with openssh extension support
- RSA and DSS server public key supported
- SSH agent authentication support
- ZLIB Compression support
libssh is open source licensed under the GNU Library (or: Lesser) General Public License (LGPL). Here are the main features of the LGPL with respect to its use by proprietary, i.e. non-open source products:
- A proprietary product can use libssh (as a library) without having to become open source under the LGPL. This is the main difference to the GPL. So, if you for example use libssh to write an application server, you can sell this product without any restrictions (ship it with libssh included) and you do not have to make your application open source.
- If an application makes modifications to libssh itself and the modified libssh is redistributed with the application, the modified libssh must be distributed under the LGPL. The preferred way is to source the modifications (not the application!) back into libssh, but that is not required. Typically, how this works is that you will contact the libssh project with the modifications for libssh, and we then decide whether to incorporate them or not. For more information on how to contribute, click here.
Libssh is brought to you by Aris Adamantiadis and Andreas Schneider. These people also contributed to libssh:
- Jean-Philippe Garcia Ballester (libgcrypt support)
- Nick Zitzmann (SFTP enhancements)
- Norbert Kiesel (Numerous bugfixes)
- Laurent Bigonville (Debian packager)