diff --git a/pom.xml b/pom.xml
index 04a2019..adb1bb2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -86,6 +86,21 @@
org.eclipse.jgit.http.apache
${dependency.jgit.revision}
+
+ org.eclipse.jgit
+ org.eclipse.jgit.ssh.apache
+ ${dependency.jgit.revision}
+
+
+ org.apache.sshd
+ sshd-core
+ 2.2.0
+
+
+ org.apache.sshd
+ sshd-common
+ 2.2.0
+
org.tigris.svnclientadapter
adapter-base
@@ -139,7 +154,7 @@
7.1.0.0-12
7.1.0.0-12
- 4.11.9.201909030838-r
+ 5.4.3.201909031940-r
diff --git a/src/main/java/org/pentaho/di/git/spoon/model/UIGit.java b/src/main/java/org/pentaho/di/git/spoon/model/UIGit.java
index 0dfc1dc..2cfdb2d 100644
--- a/src/main/java/org/pentaho/di/git/spoon/model/UIGit.java
+++ b/src/main/java/org/pentaho/di/git/spoon/model/UIGit.java
@@ -86,9 +86,13 @@
import org.eclipse.jgit.transport.RefSpec;
import org.eclipse.jgit.transport.RemoteConfig;
import org.eclipse.jgit.transport.RemoteRefUpdate;
+import org.eclipse.jgit.transport.SshSessionFactory;
import org.eclipse.jgit.transport.URIish;
import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider;
import org.eclipse.jgit.transport.http.apache.HttpClientConnectionFactory;
+import org.eclipse.jgit.transport.sshd.DefaultProxyDataFactory;
+import org.eclipse.jgit.transport.sshd.JGitKeyCache;
+import org.eclipse.jgit.transport.sshd.SshdSessionFactory;
import org.eclipse.jgit.treewalk.AbstractTreeIterator;
import org.eclipse.jgit.treewalk.CanonicalTreeParser;
import org.eclipse.jgit.treewalk.EmptyTreeIterator;
@@ -121,6 +125,13 @@ public class UIGit extends VCS implements IVCS {
* See here https://bugs.eclipse.org/bugs/show_bug.cgi?id=296201 for more details.
*/
HttpTransport.setConnectionFactory( new HttpClientConnectionFactory() );
+
+ /**
+ * Use Apache MINA sshd instead of JSch.
+ */
+ SshdSessionFactory factory = new SshdSessionFactory();
+ Runtime.getRuntime().addShutdownHook(new Thread(() -> factory.close()));
+ SshSessionFactory.setInstance(factory);
}
private Git git;