如何在 aws 上设置 ftp/sftp

如何在 aws 上设置 ftp/sftp

我想通过互联网与客户共享文件,并正在寻找 AWS 上的 ftp 解决方案。我尝试过 AWS SFTP,但设置角色策略很麻烦,而且对于我的基本用例来说,这项服务似乎有点昂贵。有没有其他方法可以在 EC2 或 S3 上设置非 AWS 用户可以访问的 ftp 服务器。我想为不同的用户添加对不同子目录的读取权限。我正在使用 macosx。

我尝试按照说明进行操作https://stackoverflow.com/questions/7052875/setting-up-ftp-on-amazon-cloud-server但不清楚如何允许非 aws 用户查看我的文件,而且我无法让 vsftpd 正常工作。

是否有推荐/标准的 aws 设置用于与非 aws 用户共享文件,最好是安全的 (sftp)。我每天都会与数百名用户共享几次更新的文件。

答案1

如果您不想使用 AWS Transfer for SFTP,则可以直接从 EC2 实例设置您的 SFTP 服务器。

如果你正确遵循这些说明,你应该能够非常轻松地创建 SFTP 用户。在我的具体案例中,我使用了带有 Ubuntu 18.04 的微型 T2 实例

  1. 让我们安装openSSH
sudo apt-get install openssh-server
  1. 您需要创建一个特定的组来监禁该组用户。
sudo groupadd sftpusers
  1. /etc/ssh/sshd_config使用 vim 或 nano
    编辑注释掉然后#Subsystem sftp /usr/lib/openssh/sftp-server
    添加Subsystem sftp internal-sftp以允许 SFTP 连接到你的服务器
    最后,在文件末尾指定新的组配置
Match group sftpusers
        ChrootDirectory %h
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp
        PasswordAuthentication yes
  1. 此时你的/etc/ssh/sshd_config表现应如下所示:
(...)

#Subsystem sftp /usr/lib/openssh/sftp-server

(...)

Subsystem sftp internal-sftp

Match group sftpusers
        ChrootDirectory %h
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp
        PasswordAuthentication yes
  1. 您需要重新启动 ssh 服务才能应用更改。
sudo service ssh restart
  1. 现在您应该设置创建一个新用户。
    按照以下命令的不同说明并输入用户密码。
sudo adduser user1
  1. 让我们将新用户添加到我们之前创建的 sftp 组。
sudo usermod -g sftpusers user1
sudo usermod -s /bin/nologin user1
  1. 此时,我们需要做的最后一件事就是将用户禁锢在/home/<user>目录中。
sudo chown root:user1 /home/user1
sudo chmod 755 /home/user1

您可以使用以下方式创建属于用户的新文件夹

sudo mkdir /home/user1/new_folder
sudo chown user1:user1 /home/user1/new_folder
sudo chmod 755 /home/user1/new_folder

我创建几天前 repo 自动化了这个过程

相关内容