Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-63601

trilead api 1.0.9 fails clone from ssh repository using 3DES/MD5-encrypted private key

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Critical Critical
    • trilead-api-plugin
    • None
    • Jenkins 2.249.1-rc
      Git client plugin 3.4.0 with JGit enabled
      Git plugin 4.2.2
    •  trilead-api-1.0.11

      I installed trilead-api-plugin 1.0.9 on my Jenkins 2.249.1-rc test instance. A job that had been successfully cloning a private GitLab repository using ssh with JGit now fails to clone. Likewise a private GitHub repository using ssh also fails to clone. With trilead api plugin 1.0.9, the clone fails with this stack trace:

      Cloning the remote Git repository
      ERROR: SSH authentication failed
      java.security.NoSuchAlgorithmException: Cannot find any provider supporting PBEWithMD5AndDESede
      	at javax.crypto.Cipher.getInstance(Cipher.java:543)
      	at com.trilead.ssh2.crypto.cipher.JreCipherWrapper.getInstance(JreCipherWrapper.java:23)
      Caused: java.lang.IllegalArgumentException
      	at com.trilead.ssh2.crypto.cipher.JreCipherWrapper.getInstance(JreCipherWrapper.java:26)
      	at com.trilead.ssh2.crypto.PEMDecoder.decryptPEM(PEMDecoder.java:353)
      	at com.trilead.ssh2.crypto.PEMDecoder.decodeKeyPair(PEMDecoder.java:492)
      	at com.trilead.ssh2.auth.AuthenticationManager.authenticatePublicKey(AuthenticationManager.java:290)
      	at com.trilead.ssh2.Connection.authenticateWithPublicKey(Connection.java:472)
      	at com.cloudbees.jenkins.plugins.sshcredentials.impl.TrileadSSHPublicKeyAuthenticator.doAuthenticate(TrileadSSHPublicKeyAuthenticator.java:109)
      	at com.cloudbees.jenkins.plugins.sshcredentials.SSHAuthenticator.authenticate(SSHAuthenticator.java:436)
      	at com.cloudbees.jenkins.plugins.sshcredentials.SSHAuthenticator.authenticate(SSHAuthenticator.java:473)
      	at org.jenkinsci.plugins.gitclient.trilead.TrileadSessionFactory.getSession(TrileadSessionFactory.java:39)
      	at org.eclipse.jgit.transport.SshTransport.getSession(SshTransport.java:107)
      	at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:254)
      	at org.eclipse.jgit.transport.TransportGitSsh.openFetch(TransportGitSsh.java:144)
      	at org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:105)
      	at org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:91)
      	at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1260)
      	at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:211)
      	at org.jenkinsci.plugins.gitclient.JGitAPIImpl$4.execute(JGitAPIImpl.java:1482)
      	at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$GitCommandMasterToSlaveCallable.call(RemoteGitImpl.java:161)
      	at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$GitCommandMasterToSlaveCallable.call(RemoteGitImpl.java:154)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:211)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:54)
      	at hudson.remoting.Request$2.run(Request.java:375)
      	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:73)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at java.lang.Thread.run(Thread.java:748)
      ERROR: Error cloning remote repo 'origin'
      hudson.plugins.git.GitException: org.eclipse.jgit.api.errors.TransportException: git@gitlab.com:MarkEWaite/tasks.git: remote hung up unexpectedly
      	at org.jenkinsci.plugins.gitclient.JGitAPIImpl$4.execute(JGitAPIImpl.java:1490)
      	at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$GitCommandMasterToSlaveCallable.call(RemoteGitImpl.java:161)
      	at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$GitCommandMasterToSlaveCallable.call(RemoteGitImpl.java:154)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:211)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:54)
      	at hudson.remoting.Request$2.run(Request.java:375)
      	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:73)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at java.lang.Thread.run(Thread.java:748)
      	Suppressed: hudson.remoting.Channel$CallSiteStackTrace: Remote call to gcp-ubuntu-18-b
      		at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1800)
      		at hudson.remoting.UserRequest$ExceptionResponse.retrieve(UserRequest.java:357)
      		at hudson.remoting.Channel.call(Channel.java:1001)
      		at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.execute(RemoteGitImpl.java:146)
      		at sun.reflect.GeneratedMethodAccessor279.invoke(Unknown Source)
      		at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      		at java.lang.reflect.Method.invoke(Method.java:498)
      		at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.invoke(RemoteGitImpl.java:132)
      		at com.sun.proxy.$Proxy113.execute(Unknown Source)
      		at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1184)
      		at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1262)
      		at hudson.scm.SCM.checkout(SCM.java:505)
      		at hudson.model.AbstractProject.checkout(AbstractProject.java:1206)
      		at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)
      		at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
      		at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
      		at hudson.model.Run.execute(Run.java:1894)
      		at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
      		at hudson.model.ResourceController.execute(ResourceController.java:97)
      		at hudson.model.Executor.run(Executor.java:428)
      Caused by: org.eclipse.jgit.api.errors.TransportException: git@gitlab.com:MarkEWaite/tasks.git: remote hung up unexpectedly
      	at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:222)
      	at org.jenkinsci.plugins.gitclient.JGitAPIImpl$4.execute(JGitAPIImpl.java:1482)
      	... 10 more
      Caused by: org.eclipse.jgit.errors.TransportException: git@gitlab.com:MarkEWaite/tasks.git: remote hung up unexpectedly
      	at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:270)
      	at org.eclipse.jgit.transport.TransportGitSsh.openFetch(TransportGitSsh.java:144)
      	at org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:105)
      	at org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:91)
      	at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1260)
      	at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:211)
      	... 11 more
      Caused by: java.lang.IllegalStateException: Cannot open session, connection is not authenticated.
      	at com.trilead.ssh2.Connection.openSession(Connection.java:1080)
      	at org.jenkinsci.plugins.gitclient.trilead.TrileadSession$ProcessImpl.<init>(TrileadSession.java:43)
      	at org.jenkinsci.plugins.gitclient.trilead.TrileadSession.exec(TrileadSession.java:33)
      	at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:254)
      	... 16 more
      ERROR: Error cloning remote repo 'origin'
      

      The job works successfully with trilead api plugin 1.0.8.

      The trilead api plugin 1.0.9 does not fail when cloning a repository from Assembla, Beanstalk, Bitbucket, or Microsoft.

            ifernandezcalvo Ivan Fernandez Calvo
            markewaite Mark Waite
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: