Documentation
Open Source Release Policy
Export Compliance
Using BouncyCastle
Installing the API
Enabling Logging
Per-Connection Logging
Third Party Dependencies
Generating SSH Keys
Using BouncyCastle
Using SSH Public Keys in Java
Supporting ED25519/Curve25519
Supporting Compression
Integrating Licensing into Maven Builds
Creating an SSH Client
Public Key Authentication
Keyboard Interactive Authentication
Public Key Authentication with sshagent
Executing Single Commands
Executing Commands within a Shell
Transferring Files
Connecting through Proxies
Display the Authentication Banner
Using the SFTP Client
Port Forwarding
Working Examples
Configuring Listening Interfaces
Configuring Host Keys
Password Authentication
Public Key Authentication
Challenge-Response Authentication
Configuring Port Forwarding
Configuring SFTP
Supporting SCP
Implementing your own File System
Creating an Interactive Terminal
Proxy Protocol Support
Open Source Release Policy
Dual Licensing
The Maverick Synergy Java SSH API employs a dual licensing approach, offering both commercial and open source versions of the API. We’ve selected the LGPL as our open source license, as it strikes a balance between safeguarding our copyright—by ensuring any modifications are released under the same license—while also permitting commercial utilization of the open source software.
Recognizing our business partners’ need for swift and efficient issue resolution, we offer a variety of paid support arrangements. In an effort to strike a balance between these needs and the open source community’s ability to effectively leverage our APIs in their projects, we’ve established a release strategy. This approach ensures our partners can receive on-demand hotfix updates, while also maintaining an active open source project with regular contributions from our developers.
We are committed to maintaining two versions of the software: an open source version for the community and a separate private branch for our partners, available under a commercial license agreement.
Open Source Releases
To ensure both product versions remain consistent and avoid feature or bug fix divergence over time, we pledge to merge changes back into the community version at predetermined intervals. This policy not only protects our partners’ interests and investments in us but also guarantees an active, regularly maintained product for the community.
We maintain a one-way flow from our commercial repositories to our open-source ones. When curating an open-source release, we carefully select changes, or “cherry-pick”, to be migrated to the open-source branch where they undergo thorough testing. This policy guarantees that no open-source contributions inadvertently make their way into our commercial codebase. Furthermore, this approach ensures that open-source projects remain autonomous, able to accept contributions that stay solely within the open-source domain.