SSH Slaves plugin

Plugin Information

Plugin ID ssh-slaves
Latest Release 3.0.2
Latest Release Date Jul 23, 2012
Sources Github
Support Eclipse Hudson Forum
Issue Tracking Eclipse Bugzilla

SSH Slaves plugin

This plugin allows you to manage slaves running on *nix machines over SSH. It adds a new type of slave launch method. This launch method will

  • Open a SSH connection to the specified host as the specified username.
  • Checks the default version of java for that user.
  • [not implemented yet] If the default version is not compatible with Hudson's slave.jar, tries to find a version of java that is.
  • Once it has a suitable version of java, copies the latest slave.jar via SFTP.
  • Starts the slave process.

Version History

Version 2.1.1 (Sep 2, 2011)

  • Trilead-ssh2 library upgraded to ganymed-ssh-2.
  • Fixed: Ssh connection failed when login banner is too long (issue #8183)
  • JDK automatic installer temporarily disabled because of NPE

Version 2.1.0 (July 27, 2011)

  • Increased buffer size in order to improve performance.
  • Added pmd plugin, resolved pmd and checkstyle errors.
  • Changed maven groupId to "org.hudsonci.plugins".

Version 2.0.1 (June 2, 2011)

Version 2.0.0 (May 3, 2011)

  • Add ability to customize javapath option for slave

Version 0.14 (Nov 2, 2010)

  • Delete file via ssh if SFTP is not available (issue #7006)

Version 0.13 (Aug 13, 2010)

  • Added Japanese localization.
  • Fixed deprecated api.

Version 0.12 (June 1, 2010)

  • Avoid "password argument is null" error (issue #6620)
  • Version check of JDKs was broken in locales that don't use '.' as the floating point separator (issue #6441)
  • If SFTP is not available on the slave, use SCP (issue #6239)
  • Hudson fails to detect JVM versions when loading older data (issue #4856)

Version 0.10 (May 2, 2010)

  • Launcher was storing password in plaintext (issue #5363)
  • Check node properties for JAVA_HOME and JDK tool path when locating java (issue #5412)
  • Support for openjdk 7 (issue #6005)

Version 0.9 (December 9, 2009)

  • JDK auto installation works on Windows+MKS environment (report)

Version 0.8 (October 23, 2009)

  • Allow OpenJDK in Java discovery (report)
  • Added a fool-proof check to detect a garbage in SSH exec session to avoid SFTP packet length problem (report)

Version 0.7 (July 27, 2009)

  • Supports private keys in the PuTTY format.
  • Fixed possible NPE (report)

Version 0.6 (July 20, 2009)

  • Improved the error reporting if the plugin fails to find usable Java implementation (report)
  • User name can be now omitted, which defaults to the user that's running the Hudson master.

Version 0.5 (April 28, 2009)

  • Added support for specifying the Slave JVM options

Version 0.4 (February 2, 2009)

  • Unknown

Version 0.3 (January 30, 2009)

  • Unknown

Version 0.2 (June 14, 2008)

  • Tidy-ups and i18n enabling the plugin

Version 0.1 (June 9, 2008)

  • Initial release

Labels:

plugin-slaves plugin-slaves Delete
tier1-plugin tier1-plugin Delete
Enter labels to add to this page:
Wait Image 
Looking for a label? Just start typing.
  1. Feb 02, 2009

    Bruce Painter says:

    Anyway to get this page updated with the changes between versions?

    Anyway to get this page updated with the changes between versions?

  2. May 11, 2009

    Michal Huniewicz says:

    I seem to be unable to upgrade to the latest (0.5.1) version. I have version 0....

    I seem to be unable to upgrade to the latest (0.5.1) version.

    I have version 0.4 now and whenever I ask Hudson to update it and restart, it still says I have 0.4 and that I should update.

    Does anyone have a similiar issue?

  3. May 11, 2009

    Bruce Painter says:

    This appears to be a known issue: http://www.nabble.com/-Issue-3662--New---pom....

    This appears to be a known issue:

    http://www.nabble.com/-Issue-3662--New---pom.xml-keeps-0.4-as-version-td23479562.html

    You can manually get the updated plugin by going to:

    https://hudson.dev.java.net/servlets/ProjectDocumentList?folderID=9380

    Then install it through the Plugin Manager -> Advanced Tab

    1. May 13, 2009

      Krystian Nowak says:

      You can also vote for https://hudson.dev.java.net/issues/show_bug.cgi?id=3662 C...
  4. Aug 24, 2010

    Cowmix says:

    Where can you post support questions for this plugin?

    Where can you post support questions for this plugin?

  5. Oct 14, 2010

    Gary Mann says:

    Hi everyone, I'm using the SSH slaves plugin (0.13) on a Windows master (Window...

    Hi everyone,

    I'm using the SSH slaves plugin (0.13) on a Windows master (Windows Server 2003, Apache Tomcat), and I'm trying to connect to a new RHEL5.0 Linux slave. I have other Linux slaves (RHEL4u5), and these all work fine with user/password authentication. However, I can't get this new slave to connect, and I simply get this error message:

    [10/14/10 18:23:55] [SSH] Opening SSH connection to hostname:22.
    [10/14/10 18:23:56] [SSH] Authenticating as username/******.
    java.io.IOException: Password authentication failed.
        at com.trilead.ssh2.auth.AuthenticationManager.authenticatePassword(AuthenticationManager.java:319)
        at com.trilead.ssh2.Connection.authenticateWithPassword(Connection.java:314)
        at hudson.plugins.sshslaves.SSHLauncher.openConnection(SSHLauncher.java:560)
        at hudson.plugins.sshslaves.SSHLauncher.launch(SSHLauncher.java:174)
        at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:184)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
    Caused by: java.io.IOException: Authentication method password not supported by the server at this stage.
        at com.trilead.ssh2.auth.AuthenticationManager.authenticatePassword(AuthenticationManager.java:289)
        ... 9 more
    [10/14/10 18:23:56] [SSH] Connection closed.

    At this point I'm completely stuck, and not sure where to go next. Google reveals many people with similar issues, but no solutions.

    A few things spring to mind. Firstly, my RHEL5 slave has a 2048 bit SSH key, whereas the RHEL4 slaves have 1024 bit keys.Could there be an issue with the embedded SSH client?

    Secondly, I'm not sure how to set up SSH properly as I'm unsure as to where the RSA keys used by the Hudson SSH client are kept (assuming they're completely unrelated to Cygwin/Putty).

    Has anyone else out there with the same issue managed to find a solution?

    Thanks in advance,

    Gary

    1. Oct 15, 2010

      Gary Mann says:

      Hello everyone again, I've just found the solution to this issue - essentially ...

      Hello everyone again,

      I've just found the solution to this issue - essentially it's to do with the way that sshd is configured. I'm not sure if this is a default in RHEL5, or whether this is my company's site configuration, but it all hinges on the following line in /etc/sshd_config (or /etc/ssh/sshd_config):

      # To disable tunneled clear text passwords, change to no here!
      PasswordAuthentication no

      If set to no, Hudson's SSH client won't be able to connect using password authentication. If you comment this line out (which I believe is the OpenSSH default), or set it to yes, then Hudson can connect just fine.

      Hope this helps anyone else with the same issue,

      Gary

      1. Oct 29, 2010

        oeuftete says:

        It absolutely helped me. Thanks!

        It absolutely helped me. Thanks!

  6. Feb 10, 2011

    Benjamin Lieb says:

    How do I use this plugin to create long running processes on linux slaves? I've...

    How do I use this plugin to create long running processes on linux slaves? I've tried nohup, etc and the process dies after the build completes. (trying to start a jboss server)

  7. Jan 10, 2012

    Nic Banister says:

    [01/10/12 09:58:30] [SSH] Opening SSH connection to <server n...

    [01/10/12 09:58:30] [SSH] Opening SSH connection to <server name>:22.
    hudson.AbortException: The server doesn't support the password authentication
    at hudson.plugins.sshslaves.SSHLauncher.openConnection(SSHLauncher.java:699)
    at hudson.plugins.sshslaves.SSHLauncher.launch(SSHLauncher.java:283)
    at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:200)
    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:619)
    [01/10/12 09:58:30] [SSH] Connection closed.

    Hi,After a recent unix server upgrade to our slaves, Hudson now fails to connect over SSH to them with the above message. I believe the issue to be that given the new servers now only support keyboard-interactive authentication, not password anymore, the connection fails. Can we add support to the plugin to either choose an authentication type or failover to keyboard-interactive if password fails? Internally, for other apps, using the same ganymed*. ssh library we've added the same fallback and its a very easy code change .Something like:

                      if(connection.isAuthMethodAvailable(usr, "password")){
                            connection.authenticateWithPassword(usr, pwd);
                         } else if(connection.isAuthMethodAvailable(usr, "keyboard-interactive")){
                               connection.authenticateWithKeyboardInteractive(usr, new InteractiveCallback(){