我有一個安裝了開放 ssh 的 Ubuntu 14.04 伺服器。我想設定 sftp 以便客戶只能下載檔案。換句話說,我將文件放在它們被監禁的目錄中。我需要確保他們只能存取包含文件的目錄,而不能存取其他內容。
本來我打算使用 vsftpd,但有人告訴我 sftp 是更好的選擇。如果有一些關於我需要的文檔那就太好了。
我需要以下方面的幫助:
- 如何設定 sftp
- 如何設定使用者帳戶並將其用於 sftp
- 如何將帳戶設定為監獄
答案1
設定為/etc/ssh/sshd_config
Subsystem sftp internal-sftp -f AUTH -l VERBOSE
UsePAM yes
Match group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
建立群組 sftp:
groupadd sftp
建立目錄
sudo mkdir /ftpusers
sudo mkdir /ftpusers/HomeFolder
直接建立使用者並附加新的 sftp 群組:
sudo useradd -d /ftpusers/HomeFolder -m UserName -g sftp -s /bin/false
sudo passwd UserName
設定 sftp 與 ssh 一起使用的權限:
chown root:root /ftpusers/HomeFolder
chmod 755 /ftpusers/HomeFolder
重啟服務:
service ssh restart
請注意,必須為新 sftp 使用者的主資料夾指定 root 擁有者。