在Linux系統上配置SFTP服務器的步驟如下:
首先,確保系統上已經安裝了OpenSSH服務器??梢允褂靡韵旅钸M行安裝:
對于基于Debian的系統(如Ubuntu):
sudo apt update
sudo apt install openssh-server
對于基于RPM的系統(如CentOS、RHEL):
sudo yum install openssh-server
或
sudo dnf install openssh-server
創建一個專門的SFTP用戶組,用于管理SFTP用戶:
sudo groupadd sftpgroup
創建一個新的SFTP用戶,并將其添加到SFTP用戶組中。禁用用戶的shell登錄,以增強安全性:
sudo useradd -g sftpgroup -s /sbin/nologin mysftp
然后為新用戶設置密碼:
sudo passwd mysftp
創建用戶的家目錄,并將其設置為用戶的根目錄(chroot環境):
sudo mkdir -p /home/mysftp
sudo usermod -d /home/mysftp mysftp
設置家目錄的權限:
sudo chown root:sftpgroup /home/mysftp
sudo chmod 755 /home/mysftp
為用戶創建一個可上傳的目錄,并設置相應的權限:
sudo mkdir /home/mysftp/upload
sudo chown mysftp:sftpgroup /home/mysftp/upload
sudo chmod 755 /home/mysftp/upload
編輯SSH配置文件 /etc/ssh/sshd_config
,以啟用SFTP子系統:
sudo nano /etc/ssh/sshd_config
在文件末尾添加或修改以下內容:
Subsystem sftp internal-sftp
Match Group sftpgroup
ChrootDirectory /home/mysftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
保存并關閉文件。
如果系統啟用了SELinux,需要臨時關閉它:
sudo setenforce 0
或者編輯 /etc/selinux/config
文件,將 SELINUX
設置為 disabled
,然后重啟系統以應用更改。
重啟SSH服務以使配置生效:
sudo systemctl restart sshd
使用SFTP客戶端連接到服務器,并測試上傳和下載功能:
sftp mysftp@localhost
輸入密碼后,應該能夠訪問SFTP環境。
確保防火墻允許SFTP使用的端口(默認是22):
sudo ufw allow 22
通過以上步驟,您可以在Linux系統上成功配置SFTP服務器,實現安全的文件傳輸和管理。