在CentOS中配置SFTP(Secure File Transfer Protocol)服務時,需要注意以下要點:
安裝OpenSSH服務器: 確保系統上已經安裝了OpenSSH服務器。如果沒有安裝,可以使用以下命令進行安裝:
sudo yum install openssh-server
配置sshd_config文件:
編輯 /etc/ssh/sshd_config 文件,確保以下配置項已經設置或取消注釋:
Subsystem sftp /usr/libexec/openssh/sftp-server:指定SFTP子系統的路徑,通常使用系統自帶的 internal-sftp。Match User sftpuser 或 Match Group sftpgroup:用于匹配允許使用SFTP的用戶或用戶組。ChrootDirectory /home/ %u:指定用戶登錄后的chroot目錄,%u代表用戶名。ForceCommand internal-sftp:強制使用SFTP,禁用TCP和X11轉發。AllowTcpForwarding no:禁止TCP轉發。X11Forwarding no:禁止X11轉發。創建SFTP用戶和用戶組: 創建一個用戶并設置其主目錄,以便該用戶可以通過SFTP登錄:
sudo useradd -m sftpuser
sudo passwd sftpuser
將用戶添加到相應的用戶組(如果使用組管理):
sudo usermod -aG sftpgroup sftpuser
設置目錄權限:
確保用戶的家目錄和 .ssh 目錄的權限設置正確:
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
sudo chown sftpuser:sftpgroup /home/sftpuser/.ssh
sudo chmod 700 /home/sftpuser/.ssh
重啟SSH服務: 修改配置文件后,重啟SSH服務以應用更改:
sudo systemctl restart sshd
驗證配置: 使用SFTP客戶端(如FileZilla)連接到服務器,使用創建的SFTP用戶名和密碼進行登錄,驗證配置是否成功。
防火墻配置(如果適用): 如果啟用了防火墻,請確保允許SSH連接:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
SELinux配置(如果適用): 如果啟用了SELinux,可能需要額外的配置來允許SFTP訪問:
sudo setsebool -P httpd_can_network_connect 1
sudo semanage port -a -t ssh_port_t -p tcp 22
通過以上步驟,您可以在CentOS上成功配置SFTP服務,確保用戶只能通過SFTP訪問其主目錄,并且所有傳輸都是加密的。請根據您的實際需求調整配置,并在生產環境中進行充分的測試。