如何在 aws 上设置 ftp/sftp

use*_*868 1 sftp amazon-web-services amazon-ec2

我想通过 Internet 与客户端共享文件,并且正在研究 aws 上的 ftp 解决方案。我尝试过 aws sftp,但设置角色策略很尴尬,而且对于我的基本用例来说,该服务似乎有点贵。是否有其他方法可以在非 aws 用户可以访问的 EC2 或 S3 上设置 ftp 服务器。我想为不同子目录的不同用户添加读取权限。我正在使用 macosx。

我尝试按照/sf/ask/493701281/ 上的说明进行操作,但不清楚如何允许非 aws 用户查看我的文件,但我不能不让 vsftpd 工作。

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

sma*_*t3r 6

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

如果您正确遵循这些说明,您应该能够非常轻松地创建您的 SFTP 用户。在我的特定情况下,我使用了一个带有 Ubuntu 18.04 的微型 T2 实例

  1. 让我们安装 openSSH
sudo apt-get install openssh-server
Run Code Online (Sandbox Code Playgroud)
  1. 您需要创建一个特定的组,您将在其中监禁用户。
sudo groupadd sftpusers
Run Code Online (Sandbox Code Playgroud)
  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
Run Code Online (Sandbox Code Playgroud)
  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
Run Code Online (Sandbox Code Playgroud)
  1. 您需要重新启动 ssh 服务以应用更改。
sudo service ssh restart
Run Code Online (Sandbox Code Playgroud)
  1. 现在您应该设置为创建一个新用户。
    按照以下命令的不同说明输入用户密码。
sudo adduser user1
Run Code Online (Sandbox Code Playgroud)
  1. 让我们将新用户添加到我们之前创建的 sftp 组中。
sudo usermod -g sftpusers user1
sudo usermod -s /bin/nologin user1
Run Code Online (Sandbox Code Playgroud)
  1. 在这一点上,我们需要做的最后一件事是将我们的用户关在/home/<user>目录中。
sudo chown root:user1 /home/user1
sudo chmod 755 /home/user1
Run Code Online (Sandbox Code Playgroud)

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

sudo mkdir /home/user1/new_folder
sudo chown user1:user1 /home/user1/new_folder
sudo chmod 755 /home/user1/new_folder
Run Code Online (Sandbox Code Playgroud)

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