A lightweight and extensible Docker image for running a Jenkins build agent over SSH. It creates a dedicated non-root user, sets up a secure SSH server, and is ready to be used as an SSH agent in Jenkins pipelines.
- Creates dedicated jenkins user (with customizable UID/GID)
- Installs and configures openssh-server
- Allows injection of SSH public keys via environment variables or container arguments
- Automatically generates SSH host keys if missing
- Secure by default: disables root login and password authentication
- Easily extensible with tools like Node.js, npm, or Yarn
docker build -t jenkins-agent-node .Using environment variable:
docker run -d \
-e JENKINS_AGENT_SSH_PUBKEY="ssh-rsa AAAA..." \
-p 2222:22 \
jenkins-agent-nodeOr pass the SSH public key as a parameter:
docker run -d \
-p 2222:22 \
jenkins-agent-node "ssh-rsa AAAA..."In Jenkins:
- Host: IP or hostname of your Docker host
- Port:
2222(or the mapped SSH port) - Credentials: Use a matching SSH private key
- Remote root directory:
/home/jenkins
| Variable | Description |
|---|---|
JENKINS_AGENT_SSH_PUBKEY |
SSH public key to authorize in the container |
JENKINS_AGENT_HOME |
Home directory for the Jenkins user |
user, group |
Username and group name (default: jenkins) |
uid, gid |
UID and GID of the user (default: 1000) |
This project is open source and available under the MIT License.