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 andrsync
installed- Default
.bashrc
fromubuntu
- Desired shell is configurable by --env
- En- or disable
root
-user by --env- Choose between keypar and password auth for
root
- Password for
root
is configurable by --env
- Choose between keypar and password auth for
- Additional ssh-users can be created by --env
- Authentication for additional users is done by keypair
- Beautifully colored log output
$ 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 root@mydomain.tld -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 root@mydomain.tld -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 root@mydomain.tld -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