在CentOS系統上配置SFTP(SSH文件傳輸協議)涉及多個步驟,包括安裝必要的軟件包、創建用戶和用戶組、配置SSH服務以及調整防火墻設置等。以下是詳細的配置說明:
首先,確保OpenSSH服務器已安裝在您的CentOS系統上。如果未安裝,可以使用以下命令進行安裝:
sudo yum install openssh-server
創建一個專門用于SFTP的用戶組和一個SFTP用戶。例如,創建名為sftpusers
的用戶組,并將需要使用SFTP的用戶添加到該組中:
sudo groupadd sftpusers
sudo useradd -G sftpusers -d /home/sftpuser -s /sbin/nologin sftpuser
sudo passwd sftpuser
為SFTP用戶創建家目錄,并設置正確的權限。例如,如果chrootDirectory
設置為/home/sftpuser
,則該目錄及其所有上級目錄的屬主和屬組都應該是root,并且權限設置為755:
sudo mkdir -p /home/sftpuser
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
編輯SSH配置文件/etc/ssh/sshd_config
,確保以下配置項已正確設置:
# 啟用SFTP子系統
Subsystem sftp internal-sftp
# 限制特定用戶組使用SFTP
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
PasswordAuthentication yes
在更改SFTP端口之前,需要在防火墻中打開新端口。如果您使用的是CentOS默認的防火墻FirewallD,請運行以下命令以打開端口:
sudo firewall-cmd --permanent --zone=public --add-port=2222/tcp
sudo firewall-cmd --reload
保存配置文件并重新啟動SSH服務以使更改生效:
sudo systemctl restart sshd
使用SFTP客戶端(如FileZilla)從另一臺計算機連接到服務器,使用服務器的登錄用戶名和密碼登錄,以測試SFTP服務是否正常工作。連接格式應為:sftp://username@hostname:port
。
例如,使用端口2222連接:
sftp://sftpuser@your_server_ip:2222