在Linux系統上搭建SFTP(SSH File Transfer Protocol)服務器,通常需要以下幾個步驟:
大多數Linux發行版默認已經安裝了OpenSSH服務器。如果沒有安裝,可以使用以下命令進行安裝:
sudo apt update
sudo apt 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
找到并修改以下配置項:
Port 22
:默認端口是22,可以根據需要更改。PermitRootLogin no
:禁止root用戶直接登錄,提高安全性。PasswordAuthentication yes
:允許密碼認證(如果需要使用密鑰認證,可以設置為no
)。Subsystem sftp /usr/lib/openssh/sftp-server
:確保SFTP子系統已啟用。保存并退出編輯器。
使配置生效:
sudo systemctl restart sshd
創建一個專門用于SFTP的用戶,并設置密碼:
sudo adduser sftpuser
sudo passwd sftpuser
為了提高安全性,可以將SFTP用戶限制在其主目錄中。編輯 /etc/ssh/sshd_config
文件,添加或修改以下內容:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
然后創建一個組 sftpusers
并將SFTP用戶添加到該組:
sudo groupadd sftpusers
sudo usermod -aG sftpusers sftpuser
確保 /etc/ssh/sshd_config
中的 Subsystem sftp
行沒有被注釋掉。
確保SFTP用戶的家目錄及其子目錄的權限設置正確:
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
sudo mkdir /home/sftpuser/upload
sudo chown sftpuser:sftpuser /home/sftpuser/upload
使用SFTP客戶端連接到服務器進行測試:
sftp sftpuser@your_server_ip
輸入密碼后,你應該能夠看到SFTP提示符,并可以上傳和下載文件。
如果服務器啟用了防火墻,確保開放SSH端口(默認是22):
sudo ufw allow 22
sudo ufw reload # Debian/Ubuntu
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload # CentOS/RHEL/Fedora
通過以上步驟,你應該能夠在Linux系統上成功搭建一個SFTP服務器。