在Debian上配置SFTP多用戶支持,可以按照以下步驟進行:
首先,確保你的系統上安裝了openssh-server
和sshd-config
。如果沒有安裝,可以使用以下命令進行安裝:
sudo apt update
sudo apt install openssh-server
創建一個專門用于SFTP用戶的組:
sudo groupadd sftpusers
為每個需要SFTP訪問的用戶創建一個系統用戶,并將其添加到sftpusers
組中。例如,創建一個名為sftpuser1
的用戶:
sudo useradd -m -G sftpusers sftpuser1
sudo passwd sftpuser1
在提示輸入密碼時,設置一個強密碼。
編輯/etc/ssh/sshd_config
文件,添加或修改以下內容以啟用SFTP子系統并限制用戶只能使用SFTP:
sudo nano /etc/ssh/sshd_config
找到并修改以下行:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
Subsystem sftp internal-sftp
:啟用SFTP子系統。Match Group sftpusers
:匹配屬于sftpusers
組的用戶。ChrootDirectory %h
:將用戶的根目錄限制在其主目錄中。ForceCommand internal-sftp
:強制用戶使用SFTP。AllowTcpForwarding no
:禁止TCP轉發。X11Forwarding no
:禁止X11轉發。確保用戶的主目錄及其父目錄的權限設置正確,以便SSH可以正確地進行chroot操作。例如,對于sftpuser1
:
sudo chown root:root /home/sftpuser1
sudo chmod 755 /home/sftpuser1
然后,為用戶的上傳目錄設置適當的權限:
sudo mkdir /home/sftpuser1/upload
sudo chown sftpuser1:sftpusers /home/sftpuser1/upload
sudo chmod 755 /home/sftpuser1/upload
保存并關閉sshd_config
文件后,重啟SSH服務以應用更改:
sudo systemctl restart sshd
使用SFTP客戶端連接到服務器,測試配置是否成功:
sftp sftpuser1@your_server_ip
如果一切配置正確,你應該能夠成功登錄并訪問用戶的/home/sftpuser1/upload
目錄。
通過以上步驟,你可以在Debian上配置SFTP多用戶支持,并確保每個用戶只能訪問其指定的目錄。