Open Source Java SSH API

Open Source Java SSH API

J2SSH Maverick is the successor to the original J2SSH API and includes a complete and stable implementation of an SSH2 client. Originally built from the ground up by the original author back in 2003, this product has, until now, only been available under a commercial license. The API is now available for the community under the LGPLv3.

J2SSH Maverick

With the development and pending release of our third generation SSH API Maverick NG, the original J2SSH Maverick API has now been released under the LGPLv3 and will continue to be maintained by the core author as a contribution to the open source community.


Whilst this is not a drop in replacement for the older J2SSH API, if you have experience using the older API you will have no problem navigating around this new implementation as many of the interfaces remain.

How is this different to your commercial stack?

The open source version is a separately maintained branch on Github. This was branched from our commercial 1.4.x private repository prior to us moving to 1.6.x, moved to Github, has been repackaged and versioned at 1.5.x to provide uniqueness. It continues to be maintained separately by us and any contributions from the community will remain solely in this branch.


J2SSH Maverick is a cross platform 100% Java™ based API.

Protocols: SSH2
Authentication: Password
Public key
Hostbased
X509
Keyboard Interactive authentication
Ciphers: 3DES
DES
Blowfish
AES
Stateful decryption counter mode cipher for AES, 3DES
HMACS: SHA1
MD5
SHA256
SHA512
Key Exchange: diffie-hellman-group-exchange-sha1
diffie-hellman-group14-sha1
diffie-hellman-group1-sha1
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521
Public Keys: RSA
DSA
ECDSA
X509
File Transfer: SFTP v4
SCP
SSH Features: Support for ssh-agent
Port forwarding
X forwarding
Public key subsystem
Dynamic SOCKS forwarding
Proxies: HTTP
SOCKS
SOCKS 5

1. Download the API or use Maven Repository and Dependencies:

<dependency>
   <groupId>com.sshtools</groupId>
    <artifactId>j2ssh-maverick</artifactId>
    <version>1.5.5</version>
</dependency>

2. Start coding…

SshConnector con = SshConnector.createInstance();
SshClient ssh = con.connect("demo.sshtools.com", 22, "demo");
PasswordAuthentication pwd = new PasswordAuthentication();
pwd.setPassword("xxxxxxxx");
ssh.authenticate(pwd);


J2SSH Maverick has, until recently, only been available under a commercial licensing agreement. With the release of our 1.6.x branch and in honour of the 10th anniversary of J2SSH Maverick’s first commercial release, we have released our legacy 1.4.x branch under the LGPL for use in both commercial and open source applications.

We now have the following license options:

LGPLv3 License (without support)

We have released our base SSH2 implementation under an open source license (LGPLv3). You may use this in both open source and commercial applications, however support is limited to community channels.

Commercial License (with support)

We continue to license our full product stack under a commercial license with unlimited email support and regular product updates. These licenses include support for both SSH1 and SSH2 protocols along with additional utilities not available in the open source edition.


1.5.x

This is branch is the official open source branch of J2SSH Maverick and has been forked from our private commercial API. This is provided without warranty and no support is provided directly by JADAPTIVE Limited. You are advised to raise support issues at the Github project page.

We will endeavour to answer queries and fix bugs as soon as we can after becoming aware of them.

Download

You can fork or access the source code on @Github. Project binaries are released on @SourceForge.

Fork me on GitHub