在CentOS系統上配置SFTP主要依賴于OpenSSH服務器。以下是詳細的配置步驟和所需依賴:
首先,確保你的CentOS系統已經安裝了OpenSSH服務器。如果沒有安裝,可以使用以下命令進行安裝:
sudo yum install openssh-server
安裝完成后,啟動SSH服務,并設置其開機自啟:
sudo systemctl start sshd
sudo systemctl enable sshd
確保SSH服務正在運行,并且沒有錯誤:
sudo systemctl status sshd
創建SFTP用戶:
sudo useradd -m -s /sbin/nologin sftpuser
設置用戶密碼:
sudo passwd sftpuser
創建用戶的SFTP根目錄:
sudo mkdir /sftp
設置根目錄的權限(根目錄必須是root用戶):
sudo chown root:root /sftp
sudo chmod 755 /sftp
在根目錄下創建子目錄,并設置寫入權限:
sudo mkdir /sftp/sharedata
sudo chown sftpuser:sftpuser /sftp/sharedata
創建新用戶的SSH配置文件目錄:
sudo mkdir /home/sftpuser/.ssh
復制系統SSH配置文件到用戶目錄:
sudo cp /etc/ssh/sshd_config /home/sftpuser/.ssh/sshd_config
編輯用戶的SSH配置文件:
sudo vi /home/sftpuser/.ssh/sshd_config
在配置文件中添加以下內容:
Match User sftpuser
ChrootDirectory /sftp
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
注意將這個配置節放到最后,否則會出現“Directive ‘UseDNS’ is not allowed within a Match block”的錯誤。
給新用戶的用戶目錄遞歸設置歸屬:
sudo chown -R sftpuser:sftpuser /home/sftpuser
給配置文件設置讀取權限:
sudo chmod 755 /home/sftpuser/.ssh/sshd_config
修改SSH服務啟動選項(可選): 如果你需要為多個用戶指定不同的配置,可以在SSH服務的啟動選項中指定這些文件。
sudo systemctl daemon-reload
sudo systemctl restart sshd
你可以使用SFTP客戶端(如FileZilla或WinSCP)來測試SFTP連接。在客戶端中輸入你的CentOS系統的IP地址、SFTP用戶名和密碼。
通過以上步驟,你可以在CentOS系統上成功配置SFTP服務器。