在 CentOS 上开启 / 配置 SFTP,通常通过 OpenSSH 自带功能实现(不需要额外装 FTP 服务)。下面按常见场景说明。
rpm -qa | grep openssh
systemctl status sshd
如果没装:
yum install -y openssh-server
启动并设置开机自启:
systemctl start sshd
systemctl enable sshd
✅ SFTP 默认随 SSH 一起可用
useradd sftpuser
passwd sftpuser
mkdir -p /data/sftp/sftpuser
chown root:root /data/sftp/sftpuser
chmod 755 /data/sftp/sftpuser
mkdir /data/sftp/sftpuser/upload
chown sftpuser:sftpuser /data/sftp/sftpuser/upload
编辑:
vi /etc/ssh/sshd_config
注释或确认:
# Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
在文件末尾添加:
Match User sftpuser
ChrootDirectory /data/sftp/sftpuser
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
systemctl restart sshd
sftp sftpuser@服务器IP
groupadd sftpusers
useradd -g sftpusers -s /sbin/nologin user1
useradd -g sftpusers -s /sbin/nologin user2
sshd_config:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
目录结构:
/data/sftp/user1
/data/sftp/user2
firewall-cmd --add-service=ssh --permanent
firewall-cmd --reload
setsebool -P ssh_chroot_rw_homedirs on
❌ 登录后立刻断开
❌ 能登录但不能写
如果你告诉我:
我可以给你精确配置示例。