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

Unable to use an encrypted SSH key with Maven2 site-deploy goal

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not A Defect
    • Icon: Minor Minor
    • maven-plugin
    • None
    • Ubuntu 10.10, Jenkins 1.408

      When trying to use the site-deploy goal with Maven2 over scp with an encrypted private key, the following error occurs:

      org.apache.maven.lifecycle.LifecycleExecutionException: Error uploading site
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
      at org.apache.maven.lifecycle.LifecycleExecutorInterceptor.execute(LifecycleExecutorInterceptor.java:65)
      at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
      at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
      at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
      at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
      at hudson.maven.agent.Main.launch(Main.java:173)
      at hudson.maven.MavenBuilder.call(MavenBuilder.java:164)
      at hudson.maven.MavenModuleSetBuild$Builder.call(MavenModuleSetBuild.java:987)
      at hudson.maven.MavenModuleSetBuild$Builder.call(MavenModuleSetBuild.java:918)
      at hudson.remoting.UserRequest.perform(UserRequest.java:118)
      at hudson.remoting.UserRequest.perform(UserRequest.java:48)
      at hudson.remoting.Request$2.run(Request.java:270)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:662)
      Caused by: org.apache.maven.plugin.MojoExecutionException: Error uploading site
      at org.apache.maven.plugins.site.SiteDeployMojo.execute(SiteDeployMojo.java:241)
      at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
      at hudson.maven.agent.PluginManagerInterceptor.executeMojo(PluginManagerInterceptor.java:182)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
      ... 28 more
      Caused by: org.apache.maven.wagon.authentication.AuthenticationException: Cannot connect. Reason: Auth cancel
      at org.apache.maven.wagon.providers.ssh.jsch.AbstractJschWagon.openConnectionInternal(AbstractJschWagon.java:264)
      at org.apache.maven.wagon.AbstractWagon.openConnection(AbstractWagon.java:105)
      at org.apache.maven.wagon.AbstractWagon.connect(AbstractWagon.java:207)
      at org.apache.maven.wagon.AbstractWagon.connect(AbstractWagon.java:142)
      at org.apache.maven.plugins.site.SiteDeployMojo.execute(SiteDeployMojo.java:212)
      ... 31 more
      Caused by: com.jcraft.jsch.JSchException: Auth cancel
      at com.jcraft.jsch.Session.connect(Session.java:450)
      at com.jcraft.jsch.Session.connect(Session.java:149)
      at org.apache.maven.wagon.providers.ssh.jsch.AbstractJschWagon.openConnectionInternal(AbstractJschWagon.java:236)
      ... 35 more

      Looking at the jsch source, the problem is due to not passing the passphrase in correctly. My settings.xml has the <passphrase> tag in the appropriate server section. I have verified the passphrase and key are correct from the command line with the user that runs Jenkins. I am able to do a full site-deploy as normal through Maven2 without Jenkins.

      I have worked around this issue by generating a new SSH key that is not encrypted and everything works as expected.

            Unassigned Unassigned
            syphr42 Gregory Moyer
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: