You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.7 KiB

6 years ago
SCP server
==========
6 years ago
6 years ago
Restricted SSH server which allows SCP / SFTP / RSYNC access only. This image is meant to provide an ability to update content in data containers. You would normally make a constellation of your service, a data container, and the scp-server container.
6 years ago
6 years ago
The scp-server container is configured at runtime with environment variables to match the configuration of the main service. The environment variables are:
* AUTHORIZED_KEYS - contains the public SSH keys for the users who will be allowed to upload.
* DATADIR - The location where relative paths start from.
* USERID - The numeric id of the `data` account. Defaults to 33.
* GROUPID - The numeric id of the `data` group. Defaults to 33.
6 years ago
6 years ago
Original code and idea is from https://github.com/gituser173/docker-scp-server.
6 years ago
Running
-------
6 years ago
It is easiest if you use docker-compose. Then you can specify the authorized SSH keys in a block declaration:
docker-compose.yml file:
6 years ago
```
scpserver:
image: eeacms/scp-server
ports:
- <PORT>:22
environment:
AUTHORIZED_KEYS: |
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA4FhFro3H....vg0hrC3s0= My First CERT
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAteQ38qb7....uC839w== Second authorized key
DATADIR: /usr/local/apache2/htdocs
6 years ago
USERID: 500
GROUPID: 500
6 years ago
volumes_from:
- htdocs
httpd:
image: httpd
ports:
- 80:80
volumes_from:
- htdocs
htdocs:
image: tianon/true
volumes:
- <DATADIR>:/usr/local/apache2/htdocs
```
6 years ago
When started you can upload data into the container (e.g. via scp) as the `data` user:
6 years ago
6 years ago
scp -P <PORT> <FILE> data@<DOCKER-HOST>:
sftp -P <PORT> data@<DOCKER-HOST>
rsync --rsh="ssh -p <PORT>" <FILE> data@localhost:
6 years ago