The Maverick Synergy Java SSH Library

Building upon the core trusted components of the Maverick Legacy Java SSH APIs in a unified framework. Released under the LGPL Maverick Synergy, it is a commercial-friendly open-source Java SSH library fully supported directly by the developers.

Introduction

Maverick Synergy, a robust Java implementation of the SSH2 protocol, empowers Java developers by enabling their applications to interact seamlessly with SSH servers.

This interaction facilitates many functions, including command execution, file transfer, and remote network service access.

Synergy can work well on both the client and server sides. In addition to its client-side capabilities, Synergy excels as an SSH secure server. It allows other SSH clients to connect with your application, opening up possibilities.

With Synergy as an SSH host, you can craft a Command Line Interface, devise commands in Java, and manage file transfers on your customised file system. This opens up a new dimension of versatility and control, bolstering the potential of your applications.


Use Cases

Automate Interactive Sessions

Execute commands efficiently in interactive sessions, script using expect type functionality, and extract individual command output and exit codes from the sessions data stream.

Interested? See our Executing commands within an Interactive Shell documentation.

Tunnel TCP and Unix Domain Sockets

Utilizes Java NIO for high-performance and thread-efficient socket communication, helping to scale your application by using resources only when needed.

Supports forwarding of TCPIP and Unix Domain sockets.

Build an SFTP Server

Build your own SFTP server with a customizable file system. Mount local storage, Windows Shares, NFS cloud-based storage like S3, or build your own file system for access to custom data.

Using our Virtual File System technology allows you to mount disparate back-end file stores into a single file-system view.

Build Command Line Interfaces

Implement commands and build a bash-like virtual shell and custom CLI.

Manipulate your custom file store through the virtual sessions’ standard file system commands and file editor.

Transfer Files via SFTP

With full support for SFTP version 6, you can build solutions that transfer files securely using SFTP.

For more information, see our Transfering Files via SFTP documentation.

Build an SSH Proxy Server

Build a modern, compliant SSH2 server to proxy multiple back-end servers via a single IP interface/port.


Feature Table

The Maverick Synergy Java SSH API implements the SSH algorithms and features listed below.

ProtocolsSSH2 (Both Client & Server Roles)
AuthenticationPassword
Public key
Keyboard Interactive authentication
Cipherschacha-poly1305@openssh.com
aes128-ctr
aes192-ctr
aes256-ctr
3des-ctr
arcfour
aes128-gcm@openssh.com
aes256-gcm@openssh.com
aes-128-cbc (deprecated)
aes192-cbc (deprecated)
aes256-cbc (deprecated)
3des-cbc (deprecated)
HMACSSHA256
SHA512
Ripe160
Support for Encrypt-then-Mac
SHA1 (deprecated)
MD5 (deprecated)
Key Exchangecurve25519-sha256
curve25519-sha256@libssh.org
diffie-hellman-group-exchange-sha1
diffie-hellman-group-exchange-sha256
diffie-hellman-group18-sha512
diffie-hellman-group17-sha512
diffie-hellman-group16-sha512
diffie-hellman-group15-sha512
diffie-hellman-group14-sha1
diffie-hellman-group1-sha1
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521
rsa2048-sha256
rsa1024-sha1 (deprecated)
Public KeysRSA (SHA1, SHA2)
ECDSA
ED25519
X509
DSA (deprecated)
File TransferSFTP v6
SCP
SSH FeaturesSupport for ssh-agent
Port forwarding
X forwarding
Public key subsystem
ProxiesHTTP
SOCKS
SOCKS 5

FAQs

Below, we have compiled some of the most common FAQs concerning the Maverick Synergy SSH Library.

What is SSH?

SSH is a secure communication protocol that allows users to log in remotely to another machine. Users can access their shell, execute commands, transfer files, and more advanced features such as port forwarding, which allows access to network services running on the remote host or other servers on the remote hosts’ network.

What is SFTP?

SFTP stands for Secure File Transfer Protocol. The protocol runs over the SSH transport to provide complete file system access to the user’s file system on the SSH server. SFTP supports many operations over and above transferring files and implements many *nix style file system commands such as stat, rm, rmdir, mkdir, symlink, and more. It allows users to browse the remote file system like they would locally.

What is SCP?

SCP is a program part of OpenSSH that performs a “secure copy” over the SSH channel. It is a pure file transfer tool and can only be used to transfer files. It does not support any of the extended file system operations that SFTP provides.

Why Maverick Synergy?

Maverick Synergy is the third-generation SSH API developed by JADAPTIVE, licensed under a dual licensing model with LGPL and commercial licensing. It provides the open-source community and our business partners with the most up-to-date and commercially supported Java SSH API.

What Are the Differences Between the Open Source and Hotfix Versions?

The open-source version is a branch of our hotfix commercial API containing our SSH2 implementation. Because the two products are separate, they are treated as such and have separate SCM.

How Often Will Updates Be Performed?

Both are high-performance tools, so updates are essential. The commercial user base will receive regular updates, while the open-source version will receive periodic updates from JADAPTIVE or can accept community contributions directly.

What Sort of Updates Can I Expect?

With the commercial version, updates will likely include enhancements to the software and bug fixes. On the other hand, the open-source version will receive community-driven updates.

How Can I Authenticate with the Maverick Synergy Java SSH Library?

It can be authenticated through public key authentication, challenge-response or passwords.

Please do not hesitate to contact us for any further questions or to request more information.

Download

Hotfix Version: 3.1.0
View Changes


SSH Specifications

We keep our API up-to-date with the latest specifications.


Open-Source

The Synergy Java SSH API is fully open-sourced under the LGPL open-source license. Maintenance updates pushed from our private hotfix branch are performed regularly and in line with our open-source release policy.