This image is updated via pull requests to the touchifyapp/docker-ssh
GitHub repo.
OpenSSH: Open Secure SHell.
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.