在CentOS系統上配置SFTP的步驟如下:
檢查SSH版本:
使用命令 ssh -V
來查看當前安裝的SSH版本,確保版本大于4.8p1,因為低于這個版本可能需要升級。
創建SFTP用戶組:
創建一個新的用戶組,例如 sftp
,用于管理SFTP用戶。
創建SFTP用戶:
創建一個新的用戶,并將其添加到 sftp
組中。例如,創建用戶 mysftp
:
sudo groupadd sftp
sudo useradd -g sftp -s /sbin/nologin mysftp
sudo passwd mysftp
設置用戶密碼。
配置用戶目錄:
為SFTP用戶創建一個目錄,并設置適當的權限。例如,為用戶 mysftp
創建目錄 /data/sftp/mysftp
:
sudo mkdir -p /data/sftp/mysftp
sudo chown mysftp:sftp /data/sftp/mysftp
sudo chmod 755 /data/sftp/mysftp
修改SSH配置文件:
編輯 /etc/ssh/sshd_config
文件,確保以下配置項正確設置:
Subsystem sftp /usr/libexec/openssh/sftp-server
Match group sftp
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
如果需要匹配多個組,可以使用逗號分隔多個組名。
設置chroot目錄權限:
確保chroot目錄的權限設置正確。例如,為用戶 mysftp
設置 /data/sftp/mysftp
目錄的權限:
sudo chown root:sftp /data/sftp/mysftp
sudo chmod 755 /data/sftp/mysftp
創建用戶可寫入的目錄: 在chroot目錄下創建一個用戶可以寫入的目錄,例如:
sudo mkdir /data/sftp/mysftp/upload
sudo chown mysftp:sftp /data/sftp/mysftp/upload
sudo chmod 755 /data/sftp/mysftp/upload
重啟SSH服務: 保存所有配置更改并重啟SSH服務以應用更改:
sudo systemctl restart sshd
驗證SFTP訪問: 使用SFTP客戶端連接到服務器,驗證用戶是否可以成功登錄并進行文件傳輸。