SFTP配置文件的位置及編輯方法
SFTP(SSH File Transfer Protocol)作為SSH協議的安全文件傳輸擴展,其核心配置文件通常位于**/etc/ssh/sshd_config**(Linux系統通用路徑)。該文件是SSH服務的主配置文件,包含了SFTP子系統、用戶權限、訪問控制等關鍵設置。
幾乎所有主流Linux發行版(如Ubuntu、CentOS、Debian、Fedora、RHEL)均將SFTP配置集成在/etc/ssh/sshd_config中。即使部分發行版(如Ubuntu)默認使用internal-sftp(無需額外指定子系統路徑),該文件仍是修改SFTP行為的主要入口。
某些Linux發行版(如CentOS 7及以上、RHEL 7及以上)支持在/etc/ssh/sshd_config.d/目錄下創建單獨的配置文件(如sftp.conf),用于隔離SFTP相關設置。這種方式可避免直接修改主配置文件,提升可維護性:
sudo vi /etc/ssh/sshd_config.d/sftp.conf
在該文件中添加SFTP配置(如Subsystem sftp internal-sftp、Match Group sftpusers等),無需修改sshd_config主文件。
nano、vi)以root權限編輯sshd_config(或sftp.conf):sudo nano /etc/ssh/sshd_config
# 或(可選路徑)
sudo vi /etc/ssh/sshd_config.d/sftp.conf
internal-sftp,可直接替換為該命令):Subsystem sftp /usr/lib/openssh/sftp-server # 傳統路徑(部分系統可能為/usr/libexec/openssh/sftp-server)
# 或(推薦,更安全)
Subsystem sftp internal-sftp
sftpusers組為例):Match Group sftpusers
ChrootDirectory %h # 限制用戶根目錄為其主目錄
ForceCommand internal-sftp # 強制使用SFTP,禁止SSH shell訪問
AllowTcpForwarding no # 禁用端口轉發
X11Forwarding no # 禁用X11轉發
sudo mkdir -p /home/username # 創建用戶主目錄
sudo chown root:root /home/username # 所有權歸root
sudo chmod 755 /home/username # 權限設置為755(用戶可讀/執行,組和其他人僅讀/執行)
sudo systemctl restart ssh # Debian/Ubuntu系統
sudo systemctl restart sshd # CentOS/RHEL系統
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak),避免配置錯誤導致SSH服務無法啟動。setsebool -P ssh_chroot_rw_homedirs on)。sudo ufw allow 22)。