在Linux中配置SFTP(SSH File Transfer Protocol)服務通常涉及以下幾個步驟。以下是一個基本的指南,假設你使用的是基于Debian的系統(如Ubuntu),但大多數步驟在其他Linux發行版中也適用。
首先,確保你的系統上安裝了OpenSSH服務器。你可以使用以下命令來安裝:
sudo apt update
sudo apt install openssh-server
編輯SSH服務器的配置文件 /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
在文件中找到并修改以下行:
#Port 22:默認端口是22,你可以更改為你想要的端口號。#PermitRootLogin prohibit-password:如果你希望允許root用戶通過SFTP登錄,可以改為 PermitRootLogin yes。#PasswordAuthentication yes:確保這一行沒有被注釋掉,以允許密碼認證。Subsystem sftp /usr/lib/openssh/sftp-server:確保這一行存在并且沒有被注釋掉。創建一個新的用戶或者使用現有的用戶來配置SFTP訪問。例如,創建一個新用戶:
sudo adduser sftpuser
設置密碼:
sudo passwd sftpuser
為了安全起見,你應該限制SFTP用戶的根目錄訪問。編輯 /etc/ssh/sshd_config 文件,添加或修改以下內容:
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
這會將 sftpuser 用戶的根目錄限制在其主目錄 /home/sftpuser 下,并強制使用SFTP。
確保用戶的主目錄存在并且權限正確:
sudo mkdir -p /home/sftpuser
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
為了使配置生效,重啟SSH服務:
sudo systemctl restart sshd
使用SFTP客戶端連接到服務器,測試配置是否正確:
sftp sftpuser@your_server_ip
你應該能夠登錄并訪問 /home/sftpuser 目錄。
如果你有防火墻,確保開放SFTP端口(默認是22):
sudo ufw allow 22
或者如果你更改了端口號,開放相應的端口。
通過以上步驟,你應該能夠在Linux系統上成功配置SFTP服務。