Switch to a recent version of a supported Jsch fork #711
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The version of JSch bundled in the plugin has not been maintained in a few years so has not kept up-to-date with newer cryptographic keys, ciphers, and signatures. This causes challenges for users attempting to use Git with configuration using up-to-date cryptographic recommendations, as the library only supports SHA1 signatures for RSA which distributions like OpenSSH have stopped supporting.
The JSch implementation has been switched to an actively maintained fork and an up-to-date version of BouncyCastle included in the dependencies to ensure elliptic curves and recent cipher suites. The existing RemoteRejectionTest has been altered to use public key authentication and an up-to-date container running a recent version of OpenSSH to allow realistic connectivity testing of remote Git over SSH connections.
As the Jsch distribution is a multi-version JAR including Java 16 class files, the plugin has had to be updated to Gradle 7 as the ASM version used in Gradle 6 is not compatible with Java 16 classes.