Jenkins controller is running on Amazon instance and agent machine set up on dedicated Soyoustart machine. Worked fine until it was needed to redo the agent setup: reinstalled the OS, installed Java, added controllers key to agent's authorized_keys
and removed/added again the agent in the controller's known_hosts
. Set up new credentials for the agent and configured the node in Jenkins controller, but it is unable to connect to the agent.
The setup is the the same that is and has been working with other agents without hiccups. The only thing different is that this time the new agent is the same machine with the IP as the old one was.
It is possible to ssh into the agent machine from controller machine from CLI(replaced filename and agent IP with placeholder for this post):
$ ssh -i <key-file> jenkins@<agent-ip>
Credentials have been set up :
Node is configured:
Output when connecting to the agent:
[05/17/15 07:30:31] [SSH] Opening SSH connection to <agent-ip>.
Key exchange was not finished, connection is closed.
ERROR: Unexpected error in launching a slave. This is probably a bug in Jenkins.
java.lang.IllegalStateException: Connection is not established!
at com.trilead.ssh2.Connection.getRemainingAuthMethods(Connection.java:1030)
at com.cloudbees.jenkins.plugins.sshcredentials.impl.TrileadSSHPublicKeyAuthenticator.getRemainingAuthMethods(TrileadSSHPublicKeyAuthenticator.java:88)
at com.cloudbees.jenkins.plugins.sshcredentials.impl.TrileadSSHPublicKeyAuthenticator.canAuthenticate(TrileadSSHPublicKeyAuthenticator.java:80)
at com.cloudbees.jenkins.plugins.sshcredentials.SSHAuthenticator.newInstance(SSHAuthenticator.java:207)
at com.cloudbees.jenkins.plugins.sshcredentials.SSHAuthenticator.newInstance(SSHAuthenticator.java:169)
at hudson.plugins.sshslaves.SSHLauncher.openConnection(SSHLauncher.java:1173)
at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:701)
at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:696)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
[05/17/15 07:30:31] Launch failed - cleaning up connection
[05/17/15 07:30:31] [SSH] Connection closed.
Version numbers:
- Jenkins 1.613
- SSH Credentials Plugin 1.11
- SSH Slaves plugin 1.9
For those who prefer to dig into code:
Am I missing something obvious here? What could be causing this? Any known workaround? Or does it look like a bug that needs to be reported?
Please let me know if more information is needed.