在Linux系統中配置SFTP(SSH File Transfer Protocol)通常涉及以下幾個步驟:
首先,確保你的系統上已經安裝了OpenSSH服務器。大多數Linux發行版默認已經安裝了OpenSSH服務器,如果沒有,可以使用以下命令進行安裝:
sudo apt-get update
sudo apt-get install openssh-server # Debian/Ubuntu
sudo yum install openssh-server # CentOS/RHEL
sudo dnf install openssh-server # Fedora
編輯SSH服務器的配置文件 /etc/ssh/sshd_config
:
sudo nano /etc/ssh/sshd_config
找到并修改以下配置項:
允許SFTP用戶登錄:確保以下行沒有被注釋掉并且設置為yes
:
Subsystem sftp /usr/lib/openssh/sftp-server
限制用戶登錄:如果你只想允許特定用戶通過SFTP登錄,可以添加或修改以下配置:
AllowUsers username1 username2
或者限制所有用戶只能通過SFTP登錄:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
創建SFTP用戶組(可選):如果你使用Match Group
配置,需要創建一個SFTP用戶組并添加用戶到該組:
sudo groupadd sftpusers
sudo usermod -aG sftpusers username
如果你希望限制SFTP用戶只能訪問其主目錄,可以配置Chroot環境:
sudo nano /etc/ssh/sshd_config
添加或修改以下配置:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
然后創建用戶的主目錄并設置正確的權限:
sudo mkdir -p /home/username
sudo chown root:root /home/username
sudo chmod 755 /home/username
保存并退出配置文件后,重啟SSH服務以應用更改:
sudo systemctl restart sshd
使用SFTP客戶端連接到服務器,測試配置是否成功:
sftp username@hostname
如果一切配置正確,你應該能夠成功登錄并進行文件傳輸。
確保你的防火墻允許SSH連接(默認端口22):
sudo ufw allow 22/tcp
sudo ufw reload # 如果使用UFW防火墻
或者使用iptables
:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo service iptables save
通過以上步驟,你應該能夠在Linux系統中成功配置SFTP。