Apache SSHD is a 100% pure java library to support the SSH protocols on both the client and server side. This library can leverage Apache MINA, a scalable and high performance asynchronous IO library. SSHD does not really aim at being a replacement for the SSH client or SSH server from Unix operating systems, but rather provides support for Java based applications requiring SSH support.
-
Java 8+ (as of version 1.3)
The code only requires the core abstract slf4j-api module. The actual implementation of the logging API can be selected from the many existing adaptors.
-
sshd-common - contains basic classes used throughout the project as well as code that does not require client or server network support.
-
sshd-core - contains the basic SSH client/server code implementing the connection, transport, channels, forwarding, etc..
-
sshd-sftp - contains the server side SFTP subsystem and the SFTP client code.
- sshd-spring-sftp - contains a Spring Integration compatible SFTP adapter
-
sshd-scp - contains the server side SCP command handler and the SCP client code.
-
sshd-ldap - contains server-side password and public key authenticators that use and LDAP server.
-
sshd-git - contains replacements for JGit SSH session factory.
-
sshd-osgi - contains an artifact that combines sshd-common and sshd-core so it can be deployed in OSGi environments.
-
sshd-putty - contains code that can parse PUTTY key files.
-
sshd-openpgp - contains code that can parse OpenPGP key files (with some limitations - see relevant section)
-
sshd-cli - contains simple templates for command-line client/server - used to provide look-and-feel similar to the Linux ssh/sshd commands.
-
sshd-contrib - experimental code that is currently under review and may find its way into one of the other artifacts (or become an entirely new artifact - e.g., sshd-putty evolved this way).