sftp是Secure File Transfer Protocol的縮寫,安全文件傳送協議。
CentOS自帶 SSH 服務,直接配置即可
1. 查看ssh版本
sftp是基於ssh協議的,首先查看ssh版本,openssh-server版本至少得是4.8p1, 因為配置權限需要版本添加的新配置項ChrootDirectory來完成。
[root@iZuf6gglwrfdrwtaluuoe8Z ~]# ssh -V OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
2. 創建用戶和組
[root@iZuf6gglwrfdrwtaluuoe8Z ~]# groupadd sftp
[root@iZuf6gglwrfdrwtaluuoe8Z ~]# useradd -g sftp -s /sbin/nologin user1
3. 設置目錄權限
[root@iZuf6gglwrfdrwtaluuoe8Z ~]# chown root:sftp /home/user1
[root@iZuf6gglwrfdrwtaluuoe8Z ~]# chmod 755 -R /home/user1
#設置用戶可以上傳的目錄,改目錄下允許用戶上傳刪除修改文件及文件夾
[root@iZuf6gglwrfdrwtaluuoe8Z ~]# mkdir /home/user1/upload
[root@iZuf6gglwrfdrwtaluuoe8Z ~]# chown -R user1:sftp /home/user1/upload
[root@iZuf6gglwrfdrwtaluuoe8Z ~]# chmod -R 755 /home/user1/upload
4. 修改配置文件sshd_config
vim /etc/ssh/sshd_config
修改為如下:
#注釋掉這行 #Subsystem sftp /usr/libexec/openssh/sftp-server #在最后面增加以下6行 Subsystem sftp internal-sftp Match Group sftp ChrootDirectory /home/%u #設定屬於用戶組sftp的用戶訪問的根文件夾 ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no #設置不允許SSH的X轉發
5. 重啟sshd服務
service sshd restart
或者
systemctl restart sshd
6. 驗證sftp服務
MacBook-Pro:downloads$ sftp user1@10.10.10.200 user1@10.10.10.200's password: Connected to 10.10.10.200. sftp>ls
upload
sftp>
見到如上字樣則證明成功
7. sftp常見命令
遠程命令: cd, ls, pwd 本地命令:遠程命令前加l , 如 lcd, lls, lpwd
或者
上傳命令: put
下載命令:get
退出: bye 或者 exit