在Linux中配置SFTP(SSH File Transfer Protocol)的步驟如下:
首先,確保你的系統上安裝了OpenSSH服務器??梢允褂靡韵旅顏戆惭b:
sudo apt update
sudo apt install openssh-server
創建一個新的用戶組,用于管理SFTP用戶:
sudo groupadd sftp
創建一個新的用戶,并將其添加到sftp
組中。同時,設置用戶的家目錄為/data/sftp
,并禁止該用戶通過SSH登錄系統:
sudo useradd -g sftp -d /data/sftp -s /sbin/nologin sftpuser
為新創建的用戶設置家目錄的權限:
sudo mkdir -p /data/sftp/sftpuser
sudo chown root:sftp /data/sftp/sftpuser
sudo chmod 755 /data/sftp/sftpuser
sshd_config
文件編輯/etc/ssh/sshd_config
文件,添加或修改以下配置:
# 注釋掉原來的Subsystem sftp行
# Subsystem sftp /usr/libexec/openssh/sftp-server -l INFO -f AUTH
# 添加新的配置
Subsystem sftp internal-sftp -l INFO -f AUTH
# 匹配用戶組sftp,并限制chroot目錄
Match Group sftp
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
確保Chroot目錄的權限設置正確:
sudo chown root:sftp /data/sftp/sftpuser
sudo chmod 755 /data/sftp/sftpuser
在用戶的chroot目錄下創建一個目錄,供用戶上傳文件:
sudo mkdir -p /data/sftp/sftpuser/upload
sudo chown sftpuser:sftp /data/sftp/sftpuser/upload
sudo chmod 755 /data/sftp/sftpuser/upload
如果你的系統啟用了SELinux,需要將其設置為寬松模式或禁用:
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
sudo setenforce 0
最后,重啟SSH服務以應用更改:
sudo systemctl restart sshd
使用新創建的用戶登錄,驗證SFTP配置是否成功:
sftp sftpuser@127.0.0.1
如果一切配置正確,你應該能夠成功登錄SFTP,并開始使用SFTP進行文件傳輸。
以上就是在Linux中配置SFTP的基本步驟。請注意,具體的配置可能會因Linux發行版和具體需求而有所不同。在進行配置時,請根據實際情況進行調整。