SFTP簡介
sftp是一種安全的文件傳送協議,是ssh內含協議,也就是說只要sshd服務器啟動了,sftp就可使用,不需要額外安裝,它的默認端口和SSH一樣為22。
FTP和SFTP的區別
1.鏈接方式:FTP使用TCP端口21上的控制連接建立連接。而SFTP是在客戶端和服務器之間通過SSH協議(TCP端口22)建立的安全連接來傳輸文件。
2.安全性:SFTP使用加密傳輸認證信息和傳輸的數據,所以使用SFTP相對於FTP是非常安全。
3.效率:SFTP這種傳輸方式使用了加密解密技術,所以傳輸效率比普通的FTP要低一點。
示例:
創建用戶名為: sftpuser 的sftp賬戶
他的家目錄是: /data/sftpuser
家目錄下有一個QA的子目錄
創建SFTP根目錄
mkdir /data/sftpuser
創建SFTP子目錄
mkdir /data/sftpuser/QA
創建用戶用戶組
useradd -d /data/sftpuser -M -s /sbin/nologin sftpuser # -d 指定家目錄 -s 禁止登陸; -M 不創建家目錄
給用戶 sftpsftpuser 設置密碼
passwd sftpuser
設置SFTP根目錄和子目錄用戶權限(一定要設置)
chown root.sftpuser /data/sftpuser chmod 755 /data/sftpuser chown -R sftpuser.sftpuser /data/sftpuser/QA chmod 755 /data/sftpuser/QA
配置文件備份
修改敏感的配置文件前一定要先備份,就算后面修改錯了,重啟之后不能遠程ssh服務器,還可以本地登陸或者web連接,還有得救。
cp /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
修改ssh配置文件 sshd_config
vim /etc/ssh/sshd_config 注釋掉: # Subsystem sftp /usr/libexec/openssh/sftp-server 在末尾添加 Subsystem sftp internal-sftp Match Group sftpuser X11Forwarding no AllowTcpForwarding no ChrootDirectory /data/sftpuser ForceCommand internal-sftp
重啟ssh服務
systemctl restart sshd # 重啟前一定葯核對好配置文件,否則重啟后可能會導致ssh連接不上。
驗證
sftp sftpuser@127.0.0.1
使用工具鏈接