Single-user OpenSSH server restricted to SFTP access
$ sudo docker run --name sftpd \
-v ssh_host_keys:/etc/ssh/host_keys:rw \
-v /somewhere:/data:rw \
--tmpfs /home/nonroot/.ssh,size=16k \
-p 2200:2200 \
-e SSH_CLIENT_PUBLIC_KEYS="$(cat ~/.ssh/id_*.pub)" \
--read-only --security-opt=no-new-privileges \
--cap-drop=ALL --cap-add SETUID --cap-add SETGID --cap-add SYS_CHROOT \
docker.io/fphammerle/sftpd
$ sshfs -p 2200 nonroot@localhost:/ /mount/point
sudo docker
may be replaced with podman
.
Pre-built docker images are available at https://hub.docker.com/r/fphammerle/sftpd/tags (mirror: https://quay.io/repository/fphammerle/sftpd?tab=tags)
Annotation of signed git tags docker/*
contains docker image digests: https://github.com/fphammerle/docker-sftpd/tags
Detached signatures of images are available at https://github.com/fphammerle/container-image-sigstore
(exluding automatically built latest
tag).
git clone https://github.com/fphammerle/docker-sftpd
SSH_CLIENT_PUBLIC_KEYS
in docker-compose.ymldocker-compose up --build