目前越來越多的FTP客戶端軟件開始支持SSH協議上傳和下載文件,這種協議方式就是SFTP。
SFTP的優勢主要有兩點,一是不需要再配置個FTP服務端;二是SSH協議是安全傳輸,上傳和下載是經過加密的。
下面介紹下在最常用的服務器系統 CentOS Linux 7 上配置 SFTP 的方式!
一、sftp 安裝
第一步:創建sftp服務用戶組,創建sftp服務根目錄:
groupadd sftp #此目錄及上級目錄的所有者(owner)必須為root,權限不高於755,此目錄的組最好設定為sftp chown -R root /var/sftp chmod -R 755 /var/sftp
第二步:創建sftp服務用戶:
#添加用戶 使用參數 -s /sbin/nologin禁止用戶通過命令行登錄
useradd -g sftp -d /home/sftp/silent -s /sbin/nologin silent
第三步:為sftp服務用戶添加密碼
passwd silent
第四步:配置sshd_config:
vim /etc/ssh/sshd_config
注釋掉下面這一行:
Subsystem sftp /usr/libexec/openssh/sftp-server
在sshd_config最后加入下面這幾行:
Subsystem sftp internal-sftp Match Group sftp ChrootDirectory /home/sftp/%u X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
注:這里要注意一下,上面這些代碼務必放在最后,因為必須要“UseDNS no”后面
第五步:重啟sshd:
systemctl restart sshd
現在可以正常連接了,但是可能還有個問題,就是無法上傳,於是我們需要設置下寫入權限:
chown root -R /var/sftp/silent chmod -R 755 /var/sftp/silent
二、sftp 簡單操作
測試
sftp silent@127.0.0.1 silent@127.0.0.1's password: