I'm trying out Jenkins and its been fun so far. I've been able to build a pipeline, pair it to my Github etc. Now I am trying to create an agent and connect with my controller but I'm getting connection refused.
My Jenkins controller is hosted locally on a docker container and I have a container running for the agent as well. I used this doc for reference: https://www.jenkins.io/doc/book/using/using-agents/
I suspect maybe a SSH service issue or maybe my ssh keys are messed up. Although the sshd is running on the agent:
43b3773b:/home/jenkins/.ssh# ps -ef
PID USER TIME COMMAND
1 root 0:00 sshd: /usr/sbin/sshd -D -e [listener] 0 of 10-100 startups
And I have the jenkins controller pub key in authorized_keys:
a81443b3773b:/home/jenkins# cat .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCjM++SY8rWLrLYVaNgVvs+kGy3s0CSFY7TzxvF1V4hfvUs0KHX6Ej3fZStLMst1YgKV0hWiB9LhpT5ViFdjylw31K9BEGDFonpOq6PxzyfhzX0JmWw/69RgK8YGTc5+FRXrB3n4g0Z0X2WStEVtttjVuS266h4iQlsBLY8Lxho76Vj2k/x6ofuoqgQuLsshMCG+VEpXXnqxBzXQqtKoBQlIuZdmQ4iFkk2S0dKyIe9XCZzlwiKXGOeKIdJsRHJ9vf+cLk5RNjyRE0ZumWdqtXX/VdSvqAJI+dzmnNVl4Exo5S403E9OKbko5iAbOWMZkZ4NvHt6lXrlzoXMUcQWEoRQ8U66bJMkjDt8s6jbtc3K0CPzYxjBiJpoAA1DdnfDvvnHhingu6TJDA9BqQkB8EcGRqKXML1gHMGhJ2alQzxwgWdTJQzURh8FiO3m1oWZnjXaKMLhMe/egmyWxjrM48ijr0f4my8oB8gjc3ftr2Zy6FasLNePagouzXEXxWVlUc= jenkins@4cfbfa97f71d
This is the command I used to start the agent:
docker run -d --rm --name=agent1 -p 4444:22 -e "JENKINS_AGENT_SSH_PUBKEY=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCjM++SY8rWLrLYVaNgVvs+kGy3s0CSFY7TzxvF1V4hfvUs0KHX6Ej3fZStLMst1YgKV0hWiB9LhpT5ViFdjylw31K9BEGDFonpOq6PxzyfhzX0JmWw/69RgK8YGTc5+FRXrB3n4g0Z0X2WStEVtttjVuS266h4iQlsBLY8Lxho76Vj2k/x6ofuoqgQuLsshMCG+VEpXXnqxBzXQqtKoBQlIuZdmQ4iFkk2S0dKyIe9XCZzlwiKXGOeKIdJsRHJ9vf+cLk5RNjyRE0ZumWdqtXX/VdSvqAJI+dzmnNVl4Exo5S403E9OKbko5iAbOWMZkZ4NvHt6lXrlzoXMUcQWEoRQ8U66bJMkjDt8s6jbtc3K0CPzYxjBiJpoAA1DdnfDvvnHhingu6TJDA9BqQkB8EcGRqKXML1gHMGhJ2alQzxwgWdTJQzURh8FiO3m1oWZnjXaKMLhMe/egmyWxjrM48ijr0f4my8oB8gjc3ftr2Zy6FasLNePagouzXEXxWVlUc= jenkins@4cfbfa97f71d" jenkins/ssh-agent:alpine-jdk17
The pubkey is of my Jenkins controller.
On my localhost port 4444 is open.
This is the error I get in Jenkins agent log:
SSHLauncher{host='0.0.0.0', port=4444, credentialsId='jenkins2', jvmOptions='', javaPath='', prefixStartSlaveCmd='', suffixStartSlaveCmd='', launchTimeoutSeconds=60, maxNumRetries=10, retryWaitTime=2, sshHostKeyVerificationStrategy=hudson.plugins.sshslaves.verifiers.ManuallyTrustedKeyVerificationStrategy, tcpNoDelay=true, trackCredentials=true}
[12/04/23 18:42:20] [SSH] Opening SSH connection to 0.0.0.0:4444.
Connection refused
SSH Connection failed with IOException: "Connection refused", retrying in 2 seconds. There are 10 more retries left.
Connection refused
Here are my containers btw:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a81443b3773b jenkins/ssh-agent:alpine-jdk17 "setup-sshd" 48 minutes ago Up 41 minutes 0.0.0.0:4444->22/tcp, :::4444->22/tcp agent1
4cfbfa97f71d jenkins/jenkins:lts "/usr/bin/tini -- /u…" 5 days ago Up 55 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp brave_pascal
Any help is greatly appreciated :)
Was able to get it working. Had to use the IP of the agent container and port 22 instead of 4444.