Main Page

From Libssh2

Contents

About

libssh2 is a library implementing the SSH2 protocol as defined by Internet Drafts: SECSH-TRANS, SECSH-USERAUTH, SECSH-CONNECTION, SECSH-ARCH, SECSH-FILEXFER, SECSH-DHGEX, SECSH-NUMBERS, and SECSH-PUBLICKEY.

FAQ

  • Can I help?
    • Do you know C? Then yes, by all means. Grab the secsh RFCs and IETF working-drafts to familiarize yourself with how the protocol works, take a look at the inline documentation to see how the library approaches the problem, then send a patch to the devel list.
  • I don't know my way around C and/or secsh, can you just give me an idea when X will be fixed/added?

Dependencies

  • Either OpenSSL or libgcrypt: Required (the newer the better)
  • zlib: Optional Provides zlib compression if present

Capabilities

  • Key Exchange Methods: diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, diffie-hellman-group-exchange-sha1**
  • Hostkey Types: ssh-rsa, ssh-dss
  • Ciphers: aes256-cbc (rijndael-cbc@lysator.liu.se), aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour, none**
  • Compression Schemes: zlib, none
  • MAC hashes: hmac-sha1, hmac-sha1-96, hmac-md5, hmac-md5-96, hmac-ripemd160 (hmac-ripemd160@openssh.com), none**

** - Affected by build time ./configure options. See INSTALL file for more information.

  • Authentication: none, password, public-key, hostbased, keyboard-interactive
  • Channels: shell, exec (incl. SCP wrapper), direct-tcpip, subsystem
  • Global Requests: tcpip-forward
  • Channel Requests: x11, pty
  • Subsystems: sftp(version 3), publickey(version 2)

Support

Roadmap

  • Version 1.0: To be released once testing/development is complete
  • Version 2.0: Introduce support for acting as an SSH server (current version is client only)
  • Version 3.0: Provide mini-crypto implementation to remove dependency on OpenSSL

License

  • libssh2: BSD License
  • libssh2 Documentation: Open Publication License

Credits

Projects Using libssh2

Disclaimers

  • This library is not related to, derived from, or meant to supersede libssh by Aris Adamantiadis. They are different projects using different code bases.
  • While OpenSSH is used as the primary compatibility testbed while working on this project, the makers of OpenSSH have made no statement endorsing this library. Nor am I aware of them even knowing it exists.