SFTP的好處不用多說,安全,簡單,便於管理(尤其在防火牆端口設置方面)。
Linux下配置SFTP非常簡單。
此例中要求:用戶ftpuser可以上傳數據至/media/data/shared/ftproot,不允許讀取和修改上級目錄的數據。不允許SSH登陸至服務器。
創建用戶和組。指定用戶的home目錄爲/media/data/shared,shell爲/sbin/nologin, 隸屬於sftp_users組,併爲其創建密碼。
創建目錄,並修改權限:/media/data/shared/ftproot
注意:ftpuser的home目錄的屬主和屬組改爲root,並且權限爲755。此時ftpuser用戶不具有寫入權限,也就不能上傳數據,可以在該目錄下創建一個可上傳的目錄,並修改它的屬主和屬組,使其具有寫入權限。
ChrootDirectory設置的目錄權限及其所有的上級文件夾權限,屬主和屬組必須是root;
ChrootDirectory設置的目錄權限及其所有的上級文件夾權限,只有屬主能擁有寫權限,也就是說權限最大設置只能是755
修改配置文件。
vim /etc/ssh/sshd_config
UsePAM yes(確定該行沒有被註釋) #Subsystem sftp /usr/libexec/openssh/sftp-server #(註釋掉這行) Subsystem sftp internal-sftp #(這行指定使用sftp服務使用系統自帶的internal-sftp。) Match Group sftp_users #(匹配sftp用戶所屬的組,也可用“Match User USERNAME”來匹配用戶) ChrootDirectory %h #(非常重要!使用ChrootDirectory將用戶鎖定在自己的home目錄中,使其不可瀏覽上級目錄。並且該行一定要在“Match”語句下方!)
重啓sshd.service。