sftp是Secure File Transfer Protocol的縮寫,安全文件傳送協議。能夠爲傳輸文件提供一種安全的網絡的加密方法。sftp 與 ftp 有着幾乎同樣的語法和功能。SFTP 爲 SSH的其中一部分,是一種傳輸檔案至 Blogger 伺服器的安全方式。其實在SSH軟件包中,已經包含了一個叫做SFTP(Secure File Transfer Protocol)的安全文件信息傳輸子系統,SFTP自己沒有單獨的守護進程,它必須使用sshd守護進程(端口號默認是22)來完成相應的鏈接和答覆操做,因此從某種意義上來講,SFTP並不像一個服務器程序,而更像是一個客戶端程序。SFTP一樣是使用加密傳輸認證信息和傳輸的數據,因此,使用SFTP是很是安全的。可是,因爲這種傳輸方式使用了加密/解密技術,因此傳輸效率比普通的FTP要低得多,若是您對網絡安全性要求更高時,能夠使用SFTP代替FTP。shell
操做環境是centos7.2 64xvim
1、添加用戶組centos
groupadd sftp
2、爲sftp用戶組添加用戶安全
-g:加入用戶組 bash
-s:指定用戶登入後所使用的shell 服務器
/sbin/nologin:用戶不容許登陸網絡
-M:不要自動創建用戶的登入目錄ssh
useradd -g sftp -s /sbin/nologin -M sftp-name
3、修改sftp-name的密碼,密碼爲123加密
passwd sftp-name
4、建立sftp-name用戶的根目錄和用戶:用戶組,修改權限755centos7
cd /usr mkdir sftp chown root:stfp sftp chmod 755 sftp
5、在sftp的目錄中建立可寫入的目錄
cd /usr/sftp mkdir project-name chown sftp-name:sftp project-name
6、修改ssh的配置文件
vim /etc/ssh/sshd_config
找到並註釋掉這行
Subsystem sftp /usr/libexec/openssh/sftp-server
更改成
#Subsystem sftp /usr/libexec/openssh/sftp-server
並在末尾添加以下幾行
Subsystem sftp internal-sftp ##指定使用sftp服務使用系統自帶的internal-sftp Match Group sftp ##匹配sftp組的用戶,若是要匹配多個組,多個組之間用逗號分割 ChrootDirectory /usr/sftp ##sftp主目錄指定到/usr/sftp ForceCommand internal-sftp ##指定sftp命令 AllowTcpForwarding no ##用戶不能使用端口轉發 X11Forwarding no ##用戶不能使用端口轉發
配置完成後保存重啓ssh
systemctl restart sshd
7、驗證
sftp sftp-name@127.0.0.1 sftp-name@127.0.0.1's password: Connected to 127.0.0.1. stfp>