Jenkins controller can't connect to the agent

Environment details
Jenkins setup:
Jenkins: 2.426.1
OS: Linux - 6.2.0-37-generic
Java: 17.0.9 - Eclipse Adoptium (OpenJDK 64-Bit Server VM)
---
ace-editor:1.1
ant:497.v94e7d9fffa_b_9
antisamy-markup-formatter:162.v0e6ec0fcfcf6
apache-httpcomponents-client-4-api:4.5.14-208.v438351942757
apache-httpcomponents-client-5-api:5.2.2-1.0
authentication-tokens:1.53.v1c90fd9191a_b_
bootstrap5-api:5.3.2-2
bouncycastle-api:2.29
branch-api:2.1135.v8de8e7899051
build-timeout:1.31
caffeine-api:3.1.8-133.v17b_1ff2e0599
checks-api:2.0.2
cloud-stats:320.v96b_65297a_4b_b_
cloudbees-folder:6.858.v898218f3609d
command-launcher:107.v773860566e2e
commons-lang3-api:3.13.0-62.v7d18e55f51e2
commons-text-api:1.11.0-94.v3e1f4a_926e49
credentials:1309.v8835d63eb_d8a_
credentials-binding:642.v737c34dea_6c2
display-url-api:2.200.vb_9327d658781
docker-commons:439.va_3cb_0a_6a_fb_29
docker-java-api:3.3.1-79.v20b_53427e041
docker-plugin:1.5
durable-task:523.va_a_22cf15d5e0
echarts-api:5.4.3-1
email-ext:2.102
font-awesome-api:6.4.2-1
git:5.2.1
git-client:4.5.0
github:1.37.3.1
github-api:1.318-461.v7a_c09c9fa_d63
github-branch-source:1751.v90e17c48a_6a_c
gradle:2.9
instance-identity:185.v303dc7c645f9
ionicons-api:56.v1b_1c8c49374e
jackson2-api:2.15.3-372.v309620682326
jakarta-activation-api:2.0.1-3
jakarta-mail-api:2.0.1-3
javax-activation-api:1.2.0-6
javax-mail-api:1.6.2-9
jaxb:2.3.9-1
jdk-tool:73.vddf737284550
jjwt-api:0.11.5-77.v646c772fddb_0
jquery3-api:3.7.1-1
jsch:0.2.8-65.v052c39de79b_2
junit:1240.vf9529b_881428
ldap:711.vb_d1a_491714dc
mailer:463.vedf8358e006b_
mapdb-api:1.0.9-28.vf251ce40855d
matrix-auth:3.2.1
matrix-project:818.v7eb_e657db_924
mina-sshd-api-common:2.11.0-86.v836f585d47fa_
mina-sshd-api-core:2.11.0-86.v836f585d47fa_
okhttp-api:4.11.0-157.v6852a_a_fa_ec11
pam-auth:1.10
pipeline-build-step:516.v8ee60a_81c5b_9
pipeline-github-lib:42.v0739460cda_c4
pipeline-graph-analysis:202.va_d268e64deb_3
pipeline-groovy-lib:689.veec561a_dee13
pipeline-input-step:477.v339683a_8d55e
pipeline-milestone-step:111.v449306f708b_7
pipeline-model-api:2.2151.ve32c9d209a_3f
pipeline-model-definition:2.2151.ve32c9d209a_3f
pipeline-model-extensions:2.2151.ve32c9d209a_3f
pipeline-rest-api:2.34
pipeline-stage-step:305.ve96d0205c1c6
pipeline-stage-tags-metadata:2.2151.ve32c9d209a_3f
pipeline-stage-view:2.34
plain-credentials:143.v1b_df8b_d3b_e48
plugin-util-api:3.6.0
popper2-api:2.11.6-4
resource-disposer:0.23
scm-api:683.vb_16722fb_b_80b_
script-security:1281.v22fb_899df1a_e
snakeyaml-api:2.2-111.vc6598e30cc65
ssh-credentials:308.ve4497b_ccd8f4
ssh-slaves:2.916.vd17b_43357ce4
sshd:3.312.v1c601b_c83b_0e
structs:325.vcb_307d2a_2782
subversion:2.17.3
timestamper:1.26
token-macro:384.vf35b_f26814ec
trilead-api:2.84.v72119de229b_7
variant:60.v7290fc0eb_b_cd
workflow-aggregator:596.v8c21c963d92d
workflow-api:1283.v99c10937efcb_
workflow-basic-steps:1042.ve7b_140c4a_e0c
workflow-cps:3806.va_3a_6988277b_2
workflow-durable-task-step:1289.v4d3e7b_01546b_
workflow-job:1360.vc6700e3136f5
workflow-multibranch:756.v891d88f2cd46
workflow-scm-step:415.v434365564324
workflow-step-api:639.v6eca_cd8c04a_a_
workflow-support:865.v43e78cc44e0d
ws-cleanup:0.45

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: Using Jenkins 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 :slight_smile:

I don’t think 0.0.0.0 is a valid IP address for an outbound connection. The only place I know where 0.0.0.0 is used is when you open a socket and want to specify to listen on all interfaces.
You will need to use ip address of the host where you docker containers are running. Or you start them with a docker compose and put both in the same network, then you can use the container name of your agent in the host field in Jenkins