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.