SSH service which allows custom password and/or custom authorized key
666
This image is updated via pull requests to the touchifyapp/docker-ssh GitHub repo.

OpenSSH (Secure SHell). The SSH protocol uses encryption to secure the connection between a client and a server. All user authentication, commands, output, and file transfers are encrypted to protect against attacks in the network.
The container can be used as a simple container or a swarm service.
The following case uses the default configuration. To connect the server, use ssh root@localhost -p 2222 (password: root).
$ docker run -dt \
$ --name ssh \
$ -p 2222:22 \
$ touchifyapp/ssh
You can also specify a custom root password.
You can specify root password using SSH_ROOT_PASSWORD environment variable:
$ docker run -dt \
$ --name ssh \
$ -p 2222:22 \
$ -e SSH_ROOT_PASSWORD=mypassword \
$ touchifyapp/ssh
You can specify root password using Docker secret and SSH_ROOT_PASSWORD_FILE environment variable:
# Create secret
$ printf "secretpassword" | docker secret create ssh_password -
# Run service
$ docker service create \
$ --name ssh \
$ --publish 2222:22 \
$ --secret ssh_password \
$ --env SSH_ROOT_PASSWORD_FILE=/run/secrets/ssh_password \
$ touchifyapp/ssh
You can provide your own authorized key.
You can specify root password using SSH_AUTHORIZED_KEY environment variable:
$ docker run -dt \
$ --name ssh \
$ -p 2222:22 \
$ -e SSH_AUTHORIZED_KEY="$(cat ~/.ssh/id_rsa.pub)" \
$ touchifyapp/ssh
You can specify root password using Docker secret and SSH_AUTHORIZED_KEY_FILE environment variable:
# Create secret
$ docker secret create ssh_authorized_key ~/.ssh/id_rsa.pub
# Run service
$ docker service create \
$ --name ssh \
$ --publish 2222:22 \
$ --secret ssh_authorized_key \
$ --env SSH_AUTHORIZED_KEY_FILE=/run/secrets/ssh_authorized_key \
$ touchifyapp/ssh
| Environment variable | Description | Example |
|---|---|---|
| SSH_ROOT_PASSWORD | Sets custom root password. | SSH_ROOT_PASSWORD=mycustompassword |
| SSH_ROOT_PASSWORD_FILE | Sets custom root password using a Docker secret. | SSH_ROOT_PASSWORD_FILE=/run/secrets/ssh_password |
| SSH_AUTHORIZED_KEY | Sets the SSH public authorized key. | SSH_AUTHORIZED_KEY="$(cat ~/.ssh/id_rsa.pub)" |
| SSH_AUTHORIZED_KEY_FILE | Sets the SSH public authorized key using a Docker secret. | SSH_AUTHORIZED_KEY_FILE=/run/secrets/ssh_authorizedkey |
| SSH_ALLOW_TCP_FORWARDING | yes or no. Enable or disable TCP forwarding. | SSH_ALLOW_TCP_FORWARDING=yes |
| SSH_GATEWAY_PORTS | yes or no. Enable or disable Gateway Ports. | SSH_GATEWAY_PORTS=yes |
You can customize the sshd behavior by appending command-line options to your command.
$ docker run -dt \
$ --name ssh \
$ -p 2222:22 \
$ -e SSH_AUTHORIZED_KEY="$(cat ~/.ssh/id_rsa.pub)" \
$ touchifyapp/ssh \
$ -o PasswordAuthentication=no \
$ -v
You can find all command-line options on the sshd manual.
View license information for the software contained in this image.
This image is officially supported on Docker version 1.13+.
Please see the Docker installation documentation for details on how to upgrade your Docker daemon.
Documentation for this image is stored in the touchifyapp/docker-ssh GitHub repo.
Be sure to familiarize yourself with the repository's README.md file before attempting a pull request.
If you have any problems with or questions about this image, please contact us through a GitHub issue.
You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.
Before you start to code, we recommend discussing your plans through a GitHub issue, especially for more ambitious contributions. This gives other contributors a chance to point you in the right direction, give you feedback on your design, and help you find out if someone else is working on the same thing.
Content type
Image
Digest
Size
4.8 MB
Last updated
over 7 years ago
docker pull touchify/ssh