Required Data: SSH dedicated agents


Any kind of communication issue between Jenkins master and a dedicated SSH agent.

Required Data SSH dedicated agents

This article describes how to collect the minimum required information for communication issues between a Jenkins master and a SSH agent so that it can be efficiently troubleshooted.

If the required data is bigger than 50 MB you will not be able to use ZenDesk to upload all the information. On this case we would like to encourage you to use our upload service in order to attach all the required information.


  • CloudBees Jenkins Platform (CJP)
  • Operations Center (OC)
  • Client Master (CM)
  • CloudBees Jenkins Enterprise (CJE)

Required Data check list

  • Time and Date the issue was exposed
  • Support bundle
  • Agent name
  • Agent config.xml
  • Agent logs
  • Master logs

Support bundle

A support bundle from the Jenkins instance after the issue is exposed. Please, follow the KB below in case you don’t know how to generate a support bundle.

Agent name

The name of the agent under Manage Jenkins -> Manage Nodes

Agent config.xml

It is possible to access to the agent config.xml from the UI. You just need to add at the end of the item URL config.xml. i.e http://<JENKINS_URL>/computer/<AGENT_NAME>/config.xml

<retentionStrategy class="hudson.slaves.RetentionStrategy$Always"/>
<launcher class="hudson.plugins.sshslaves.SSHLauncher" plugin="ssh-slaves@1.11">
<org.jenkinsci.plugins.envinject.EnvInjectNodeProperty plugin="envinject@1.93.1">

Agent logs

When writing this document (July, 2017) the remoting-3.8 which contains support for work directories was not still included in any Jenkins LTS release. When this enhancement is available in a LTS version, it will be possible to easily record the agent logs without almost any effort on the Jenkins admin side. Meanwhile this new feature is coming the easiest workaround is to use a Java logging to record the information in the agent file system.

In the Remote root directory of this agent create a file called with the following content.

.level = ALL
handlers= java.util.logging.FileHandler

java.util.logging.FileHandler.level = ALL
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.FileHandler.limit = 10000000
java.util.logging.FileHandler.count = 10

javax.jms.connection.level = INFO
hudson.level = INFO
hudson.remoting.Channel.level = FINE
hudson.remoting.FileSystemJarCache.level = INFO
hudson.remoting.jnlp.level = FINE
hudson.remoting.RemoteClassLoader.level = INFO
jenkins.slaves.level = FINE
hudson.slaves.level = FINE
org.jenkinsci.remoting.engine.level = FINE
jenkins.AgentProtocol.level = FINE

After this, in the agent configuration at Jenkins side under the Advanced section add the JVM Options You will need to relaunch the agent to take the effects.

Now, under $REMOTE_ROOT_DIRECTORY/support* you will see files called jenkins-ssh-agent-* which will contail the agent logs. This needs to be attached when the issue is exposed.

Remoting work directory

Remoting work directory is available starting from Remoting 3.8,which is available in Jenkins 2.68). Before this version there was no working directory concept in the library itself; all operations were managed by library users (e.g. Jenkins agent workspaces).

Master logs

Attach the master logs around the time the issue is exposed that you can directly find in the UI under Manage Jenkins-> System Log -> All Jenkins Logs.

Notice that the idea is to correlate the master logs with the agent logs at the time the issue is exposed.

Have more questions?


  • 0
    Anshul Agarwal
    Edited by Anshul Agarwal
Please sign in to leave a comment.