在 CentOS 上开启 SFTP(基于 SSH 的文件传输)通常不需要额外安装服务,因为 SFTP 是 OpenSSH 自带的功能。下面按常见场景说明。
rpm -qa | grep openssh
如果没有,安装:
yum install -y openssh-server
systemctl start sshd
systemctl enable sshd
netstat -tunlp | grep sshd
# 或
ss -tunlp | grep sshd
只要 sshd 正常运行,任何系统用户都可以使用 SFTP:
sftp username@服务器IP
✅ 不需要额外配置
常用于给业务/客户账号用。
useradd sftpuser
passwd sftpuser
编辑:
vi /etc/ssh/sshd_config
在文件末尾添加:
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
chown root:root /home/sftpuser
chmod 755 /home/sftpuser
mkdir /home/sftpuser/upload
chown sftpuser:sftpuser /home/sftpuser/upload
systemctl restart sshd
firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload
如果 SFTP 无法访问目录,可临时测试:
setenforce 0
长期解决(推荐):
setsebool -P ssh_chroot_rw_homedirs on
如果你需要:
可以告诉我你的具体需求,我给你对应方案。