2014-10-29 19:37:36 -04:00
sftp [![Docker Build Status ](http://hubstatus.container42.com/atmoz/sftp )](https://registry.hub.docker.com/u/atmoz/sftp)
2014-10-06 15:40:59 -04:00
====
2014-12-18 13:21:37 -05:00
Easy to use SFTP ([SSH File Transfer Protocol](https://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol)) server with [OpenSSH ](https://en.wikipedia.org/wiki/OpenSSH ).
2014-10-06 15:40:59 -04:00
Usage
-----
2014-10-20 21:21:53 -04:00
- Define users as last arguments to `docker run` , one user per argument
2014-10-28 14:04:01 -04:00
(syntax: `user:pass[:e][:[uid][:gid]]` ).
2014-10-20 21:21:53 -04:00
- You must set custom UID for your users if you want them to make changes to
your mounted volumes with permissions matching your host filesystem.
2014-10-15 16:26:16 -04:00
- Mount volumes in user's home folder.
2014-10-20 13:43:07 -04:00
- The users are chrooted to their home directory, so you must mount the
volumes in separate directories inside the user's home directory
(/home/user/**mounted-directory**).
2014-10-15 16:26:16 -04:00
2014-10-15 16:47:14 -04:00
Examples
--------
2014-10-20 13:43:07 -04:00
### Single user and volume
2014-10-15 18:09:27 -04:00
2014-10-15 16:47:14 -04:00
```
docker run \
2014-10-20 21:21:53 -04:00
-v /host/share:/home/foo/share \
-p 2222:22 -d atmoz/sftp \
foo:123:1001
2014-10-15 16:47:14 -04:00
```
2014-10-06 18:25:49 -04:00
2014-10-20 13:43:07 -04:00
### Multiple users and volumes
2014-10-15 18:09:27 -04:00
2014-10-06 18:25:49 -04:00
```
docker run \
2014-10-20 21:21:53 -04:00
-v /host/share:/home/foo/share \
-v /host/documents:/home/foo/documents \
-v /host/http:/home/bar/http \
-p 2222:22 -d atmoz/sftp \
foo:123:1001 \
bar:abc:1002
2014-10-06 18:25:49 -04:00
```
2014-10-20 21:21:53 -04:00
### Encrypted password
2014-10-20 13:43:07 -04:00
2014-10-20 21:21:53 -04:00
Add `:e` behind password to mark it as encrypted. Use single quotes.
2014-10-20 13:43:07 -04:00
```
2014-10-20 21:21:53 -04:00
docker run \
-v /host/share:/home/foo/share \
-p 2222:22 -d atmoz/sftp \
'foo:$1$0G2g0GSt$ewU0t6GXG15.0hWoOX8X9.:e:1001'
2014-10-20 13:43:07 -04:00
```
2014-10-20 21:21:53 -04:00
Tip: you can use makepasswd to generate encrypted passwords:
`echo -n 123 | makepasswd --crypt-md5 --clearfrom -`
2014-10-20 13:43:07 -04:00
2014-10-21 04:42:49 -04:00
### Using SSH key (without password)
2014-10-20 13:43:07 -04:00
```
2014-10-20 21:21:53 -04:00
docker run \
2014-10-21 04:42:49 -04:00
-v /host/id_rsa.pub:/home/foo/.ssh/authorized_keys:ro \
2014-10-20 21:21:53 -04:00
-v /host/share:/home/foo/share \
-p 2222:22 -d atmoz/sftp \
foo::1001
2014-10-20 13:43:07 -04:00
```