About

The ssh library was designed to be used by programmers needing a working SSH implementation by the mean of a library. The complete control of the client is made by the programmer. With libssh, you can remotely execute programs, transfer files, use a secure and transparent tunnel for your remote programs. With its Secure FTP implementation, you can play with remote files easily, without third-party programs others than libcrypto (from openssl).

Who uses libssh?

  • KDE uses libssh for the kio_sftp slave
  • csync a bidirectional file synchronizer
  • Remmina the GTK+/Gnome Remote Desktop Client

Features

  • Full C library functions for manipulating a client-side SSH connection
  • SSH2 and SSH1 protocol compliant
  • Fully configurable sessions
  • Server support
  • SSH agent authentication support
  • Support for AES-128, AES-192, AES-256, Blowfish, 3DES in CBC mode
  • Supports OpenSSL and GCrypt
  • Use multiple SSH connections in a same process, at same time
  • Use multiple channels in the same connection
  • Thread safety when using different sessions at same time
  • POSIX-like SFTP (Secure File Transfer) implementation with openssh extension support
  • SCP implementation
  • Large file system support (files bigger than 4GB)
  • RSA and DSS server public key supported
  • Compression support (with zlib)
  • Public key (RSA and DSS), password and keyboard-interactive authentication
  • Full poll() support and poll-emulation for win32.
  • A complete doxygen documentation about its API
  • Runs and tested under x86_64, x86, ARM, Sparc32, PPC under Linux, BSD, MacOSX, Solaris and Windows
  • Developers listening to you
  • It’s free (LGPL)!

Authors

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)