2015-11-09 1 views
3

Я пытаюсь использовать серверы Amazon EC2 в качестве моего SFTP-сервера, где я могу создать аутентифицированных пользователей для sftp на моем сервере. Я установил ведра s3 на серверы по адресу/mnt/buckets/{username} для каждого пользователя, используя s3fs. Чтение и запись в каталоге/mnt/buckets/{username} работает с s3, как ожидалось.Пользователи SFTP Chroot для монтированного ведра S3

У моего sshd_config есть следующее.

ChrootDirectory /mnt/buckets/%u 
X11Forwarding no 
AllowTcpForwarding no 
ForceCommand internal-sftp 

Когда SFTP-ки я получаю следующий ответ

... 
debug1: Authentication succeeded (publickey). 
Authenticated to ec2-54-173-113-164.compute-1.amazonaws.com ([54.173.113.164]:22). 
debug2: fd 5 setting O_NONBLOCK 
debug3: fd 6 is O_NONBLOCK 
debug1: channel 0: new [client-session] 
debug3: ssh_session2_open: channel_new: 0 
debug2: channel 0: send open 
debug1: Requesting [email protected] 
debug1: Entering interactive session. 
Write failed: Broken pipe 
Connection closed 

Навесной ковш имеет эти разрешения.

/home/ubuntu# ls -l /mnt/buckets/ 
total 1 
drwxrwxrwx 1 root root 0 Jan 1 1970 sftptester 

При изменении каталога Chroot в/MNT/ведер Я могу войти на сервер SFTP, а также чтение и запись в s3 смонтированный ведро

Могу ли я CHROOT пользователя в установленный s3 ведро?

(Кроме того, если есть какие-то инструменты, которые имеют эту функциональность уже мне было бы интересно узнать их, а)

+0

Я не знаю, как просто использовать openssh в sftp, но он работает так, как ожидалось, с proftpd + s3fs. http://stackoverflow.com/a/23946418/1695906 –

+0

Вы когда-нибудь решали эту проблему? –

ответ

0

Проблема может быть, что S3 «ведро папки», которые появляются в качестве пользовательских каталогов в папке монтирования не имеют правильных разрешений для пользователей SFTP для их чтения.

Попробуйте добавить это к выполнению S3FS -o umask=022. Это позволит добавить следующие разрешения в папки пользователя SFTP: drwxr-xr-x

Пример: ковшового имя SUDO s3fs/монтирование/папки/-o iam_role = role_name -o allow_other -o stat_cache_expire = 10 -o enable_noobj_cache -о enable_content_md5 -o Umask = 022

  • -o allow_other и -o umask=022 оба были необходимы для меня, чтобы получить эту работу.