如何在 aws 上設定 ftp/sftp

如何在 aws 上設定 ftp/sftp

我想透過網路與客戶分享文件,並且正在研究 aws 上的 ftp 解決方案。我嘗試過 aws sftp,但設定角色策略很尷尬,而且該服務對於我的基本用例來說似乎有點昂貴。是否有其他方法可以在 EC2 或 S3 上設定非 aws 用戶可以存取的 ftp 伺服器。我想為不同的使用者新增不同子目錄的讀取權限。我正在使用 macOS。

我嘗試按照以下說明進行操作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

我創建幾天前的倉庫自動化了這個過程

相關內容