在 CentOS 上搭建 SFTP 服务器其实不需要额外安装特殊软件,因为 SFTP 是基于 SSH 的,只要系统装了 openssh-server 就可以使用。
下面我分 最简可用 和 安全隔离(推荐) 两种方式说明。
yum install -y openssh-server
systemctl enable sshd
systemctl start sshd
useradd sftpuser
passwd sftpuser
从客户端:
sftp sftpuser@服务器IP
✅ 默认就能用(用户有 shell 权限)
useradd -m -s /sbin/nologin sftpuser
passwd sftpuser
mkdir -p /sftp/sftpuser
chown root:root /sftp
chown root:root /sftp/sftpuser
chmod 755 /sftp/sftpuser
⚠️ SFTP 根目录 必须属主为 root
mkdir /sftp/sftpuser/upload
chown sftpuser:sftpuser /sftp/sftpuser/upload
编辑:
vi /etc/ssh/sshd_config
注释掉或删除:
# Subsystem sftp /usr/libexec/openssh/sftp-server
在文件末尾添加:
Subsystem sftp internal-sftp
Match User sftpuser
ChrootDirectory /sftp/sftpuser
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
systemctl restart sshd
sftp sftpuser@服务器IP
✅ 只能 SFTP
❌ 不能 SSH 登录
原因:
✅ 修复:
chown root:root /sftp/sftpuser
chmod 755 /sftp/sftpuser
Match Group sftp
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
groupadd sftp
useradd -g sftp -s /sbin/nologin user1
firewall-cmd --add-service=ssh --permanent
firewall-cmd --reload
如果你需要:
可以告诉我你的使用场景,我可以直接给你 完整可用配置。