今天公司業務部門說要測試一款產品,需要FTP服務器,本來想給他們使用pure-ftp,但是他們指定要SFTP服務器。
我從來都沒搭建過,正好藉此機會部署測試一下
SFTP訪問會使用本地系統賬號,而非其他ftp服務器那樣可以使用虛擬賬號
1 軟件包(大多數系統已默認安裝)
openssh openssh-clients openssh-server
2 創建ftp組與ftp賬號
在創建賬號時,禁止ssh登錄,並將賬號加入ftpgroup,賬號密碼爲123456
# groupadd ftpgroup
# useradd -s /sbin/nologin -M -N ftpuser01
# usermod -a -G ftpgroup ftpuser01
3創建ftp根目錄並修改權限
# mkdir /ftpdata
# chown root.ftpgroup /ftpdata
4創建上傳目錄upload並修改權限
# mkdir -p /ftpdata/upload/
# chown root.ftpgroup upload/
# chmod 770 upload/
5 sftp配置
修改/etc/ssh/sshd_config,以下幾項:
Subsystem sftp internal-sftp-------此處務必要修改爲internal-sftp
Match Group ftpgroup------此處使用組管理,即創建的ftpgroup
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /sftpdata------限制根目錄
6 重啓sshd服務
7測試
用戶可以在upload目錄內進行文件上傳下載,以及文件夾的創建
總結:
SFTP配置還是比較簡單的
在sshd_config配置文件中,系統默認採用Match User(匹配用戶)的模式,而我們採用組管理方式。
經過測試,配置多組Match User或者Match Group都是可以的。