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)。