Dockerize your OpenSSH-server with rsync and bash installed, upon a customizable alpine-image
MIT License
Use this Dockerfile / -image to start a slim and highly customizable sshd-server with bash
and rsync
installed.
Thanks to Travis-CI this image is pushed weekly and creates new tags if there are new versions available.
For recent tags check Dockerhub.
bash
-shell and rsync
installed.bashrc
from ubuntu
root
-user by --env
root
root
is configurable by --env$ docker run --rm \
--publish=1337:22 \
--env ROOT_PASSWORD=MyRootPW123 \
hermsi/alpine-sshd
After the container is up you are able to ssh in it as root with the in --env provided password for "root"-user.
$ ssh [email protected] -p 1337
$ docker run --rm \
--publish=1337:22 \
--env ROOT_KEYPAIR_LOGIN_ENABLED=true \
--volume /path/to/authorized_keys:/root/.ssh/authorized_keys \
hermsi/alpine-sshd
After the container is up you are able to ssh in it as root with a private-key which matches the provided public-key in authorized_keys for "root"-user.
$ ssh [email protected] -p 1337 -i /path/to/private_key
$ docker run --rm \
--publish=1337:22 \
--env SSH_USERS="hermsi:1000:1000" \
--volume /path/to/hermsi_public_key:/conf.d/authorized_keys/hermsi \
hermsi/alpine-sshd
After the container is up you are able to ssh in it as the given user with a private-key that matches the provided public-key in authorized_keys for your created user.
$ ssh mydomain.tld -l hermsi -p 1337 -i /path/to/hermsi_private_key
$ docker run --rm \
--publish=1337:22 \
--env SSH_USERS="hermsi:1000:1000,dennis:1001:1001" \
--volume /path/to/hermsi_public_key:/conf.d/authorized_keys/hermsi \
--volume /path/to/dennis_public_key:/conf.d/authorized_keys/dennis \
hermsi/alpine-sshd
After the container is up you are able to ssh in it as one of the given users with a private-key that matches the provided public-key in authorized_keys for your desired user.
$ ssh [email protected] -p 1337 -i /path/to/private_key
While beeing very slim and vanilla this image is still highly customizable.
Variable | Possible Values | Default value | Explanation |
---|---|---|---|
ROOT_LOGIN_UNLOCKED | 'true' or 'false' | 'false' | Whether to enable or disable login as 'root' user |
ROOT_KEYPAIR_LOGIN_ENABLED | 'true' or 'false' | 'false' | Enable login as 'root' by keypair (implies ROOT_LOGIN_UNLOCKED ). Must mount public-key into container: /root/.ssh/authorized_keys
|
ROOT_PASSWORD | any desired string | undefined |
Set password for login as root (implies ROOT_LOGIN_UNLOCKED ) |
USER_LOGIN_SHELL | any existing shell | /bin/bash |
Choose the desired default shell for all additional users. If the configured shell is not existent, a fallback to /bin/ash is applied |
This image is designed to be as slim and vanilla as possible.
If you need additional Tools like git
, I definetly recommend to build your own image on top of alpine-sshd
:
FROM hermsi/alpine-sshd:latest
RUN apk add --no-cache \
git
I built this image in order to use it along with a nginx and fpm-php container for transferring files via sftp. If you are interested in a Dockerfile which fulfills this need: this way