linux 配置 SFTP
參考資料
https://blog.csdn.net/yanzhenjie1003/article/details/70184221 轉(zhuǎn)自嚴(yán)振杰的博客
https://www.cnblogs.com/whatmiss/p/7068772.html
1.安裝ssh和openssh-sftp-server
2.建立用戶組和用戶
- 建立一個(gè)名為sftp-users的sftp用戶組
sudo groupadd sftp-users
- 在該組建立幾個(gè)需要登錄sftp的用戶
# 新建用戶名為admin的用戶:
sudo useradd -g sftp-users -m admin
# 修改admin的密碼:
passwd admin
# 如果該用戶已存在歹袁,但是不在sftp-users組中,可以移動(dòng)用戶到改組
usermod –g sftp_users admin
3.配置ssh和權(quán)限
- 打開
/etc/ssh/sshd_config
文件,修改或添加如下兩條
AllowTcpForwarding = no
X11Forwarding = no
- 修改Subsystem sftp為internal-sftp
Subsystem sftp /usr/libexec/openssh/sftp-server
# 或者
Subsystem sftp /usr/lib/openssh/sftp-server
修改為:
Subsystem sftp internal-sftp
- 為什么用 internal-sftp 而不用默認(rèn)的 sftp-server寝优,這是因?yàn)椋?/li>
- 這是一個(gè)進(jìn)程內(nèi)的 sftp 服務(wù)条舔,當(dāng)用戶 ChrootDirectory 的時(shí)候,將不請(qǐng)求任何文件乏矾;
- 更好的性能孟抗,不用為 sftp 再開一個(gè)進(jìn)程。
3.在文件末尾增加內(nèi)容
Match Group sftp-users
ChrootDirectory %h
ForceCommand internal-sftp
- Match Group sftp-users這一行是指定以下的子行配置是匹配sftp-users用戶組的钻心,多個(gè)用戶組用英文逗號(hào)分隔夸浅。
- ChrootDirectory %h該行指定Match Group行指定的用戶組驗(yàn)證后用于chroot環(huán)境的路徑,也就是默認(rèn)的用戶目錄扔役,比如/home/admin帆喇;也可以寫明確路徑,例如/data/www亿胸。
- ForceCommand internal-sftp該行強(qiáng)制執(zhí)行內(nèi)部sftp坯钦,并忽略任何~/.ssh/rc文件中的命令。
4.修改sftp-users用戶組用戶目錄權(quán)限
- 修改權(quán)限為root用戶擁有
chown root /home/admin
- 修改權(quán)限為root可讀寫執(zhí)行侈玄,其它用戶可讀
chmod 755 /home/admin
- 重啟ssh婉刀,登錄sftp
# Ubuntu 重啟ssh
sudo service ssh restart
# CentOS 重啟ssh
sudo systemctl restart sshd.service
# CentOS 設(shè)置開機(jī)啟動(dòng)
sudo systemctl enable sshd.service
- 在用戶目錄下建立子upload目錄,讓sftp-users中的用戶可讀寫文件
cd /home/admin/
mkdir upload
- 授權(quán)upload文件夾讀寫
- 讓子文件夾upload屬于admin
chown admin /home/admin/upload
- 讓子文件夾upload被admin讀寫
chmod 755 /home/admin/upload
- 重啟ssh序仙,登錄sftp