
Моему клиенту нужен был sftp-сервер для обмена файлами, поэтому я создал sftp-сервер на машине amazon ec2 ubuntu и добавил разных пользователей.
Теперь им нужно, чтобы при входе пользователя на sftp-сервер через winscp или какой-либо другой клиент они могли видеть только свои собственные папки в домашнем каталоге, другие папки не должны быть им видны. Также в своих домашних каталогах они не должны видеть никаких файлов или папок, которые начинаются с точки (.).
Возможно ли это? Например, см. ссылку на скриншот ниже. Я просто хочу, чтобы мой клиент видел/получал доступ к папке Transcript, и ничего больше.
решение1
Спасибо всем, наконец-то эта ссылка помогла мне выполнить мою задачу.http://rmtheis.wordpress.com/2011/07/03/setting-up-an-sftp-site-on-amazon-web-services-ec2-creating-an-account-to-share-with-a-third-party-and-restricting-that-account-to-allow-only-sftp/
Он состоит из трех частей:
- настройка sftp-сайта на EC2
- создание новой учетной записи пользователя
- настройка новой учетной записи пользователя для доступа по FTP только для чтения, без привилегий SSH
Это предназначено для передачи файлов от доверенных пользователей и к ним. Я использую это как адекватное решение для периодической отправки очень больших файлов клиентам, используя экземпляр EC2, выделенный для этой задачи. После завершения передачи я выключаю или удаляю экземпляр.
Настройте сервер с помощью Amazon Web Services EC2, выбрав Ubuntu Amazon Machine Image (AMI). (Вы можете найти AMI с помощью http://cloud.ubuntu.com/ami/. Вы можете выбрать тот, который подходит для бесплатного уровня, например ami-1aad5273)
ssh на сервер:
ssh -i keyfile.pem [email protected]
Установить vsftpd:
sudo apt-get install vsftpd
Создайте нового пользователя:
sudo adduser newusername
Используя Консоль управления AWS, сгенерируйте новую пару ключей для стороннего пользователя.
Используя puttygen, импортируйте новый ключ (keyname.pem) и скопируйте его открытый ключ.
На сервере создайте каталог .ssh для нового пользователя:
sudo mkdir /home/newusername/.ssh
Вставьте открытый ключ в
/home/newusername/.ssh/authorized_keys
.Установить разрешения:
sudo chmod 700 /home/newusername/.ssh
sudo chmod 600 /home/newusername/.ssh/authorized_keys
sudo chown -R newusername:newusername /home/newusername/.ssh
Проверьте вход нового пользователя по sftp с локального компьютера:
sftp -o IdentityFile=newkeypair1.pem
[email protected]
Создайте новую группу для пользователей, которым следует разрешить использовать только sftp:
sudo groupadd sftponly
sudo adduser newusername sftponly
Отредактируйте
/etc/ssh/sshd_config
и измените строку Subsystem на:
Subsystem sftp internal-sftp
и добавьте эти строки в конец
/etc/ssh/sshd_config
:
Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Установите разрешения, не затирая файлы, необходимые для аутентификации на основе ключей EC2:
sudo chown root:root /home/newusername
sudo chown -R newusername:newusername /home/newusername/.ssh
sudo /etc/init.d/ssh restart
Теперь новый пользователь может подключаться по sftp, но не по ssh. Поместите файлы, которыми вы хотите поделиться, в
/home/newusername
, и поделитесь ключом с пользователем.