Это состоит из трех частей:
- настройка сайта 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 ubuntu@ec2-hostname.amazonaws.com
Установите 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
newusername@ec2-hostname.amazonaws.com
Создайте новую группу для пользователей, которые должны ограничиваться использованием только sftp:
sudo groupadd sftponly
sudo adduser newusername sftponly
Отредактируйте /etc/ssh/sshd_config
и измените строку подсистемы на:
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
и поделитесь ключом с пользователем.