在 CentOS 上开启 SFTP 非常简单,默认情况下 OpenSSH 就已经支持 SFTP,只需要确保 SSH 服务正常运行即可。下面是完整步骤:
rpm -qa | grep openssh
如果没有安装,执行:
sudo yum install -y openssh-server
sudo systemctl start sshd
sudo systemctl enable sshd
sudo systemctl status sshd
查看 SSH 配置文件:
sudo vi /etc/ssh/sshd_config
确认有类似以下内容(通常已存在):
Subsystem sftp /usr/libexec/openssh/sftp-server
✅ 只要这一行存在,SFTP 就已经开启。
修改后需重启 SSH:
sudo systemctl restart sshd
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
service iptables save
service iptables restart
sftp username@服务器IP
使用工具:
协议选择 SFTP,端口 22
sudo useradd -m sftpuser
sudo passwd sftpuser
sudo vi /etc/ssh/sshd_config
在文件末尾添加:
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
mkdir /home/sftpuser/upload
sudo chown sftpuser:sftpuser /home/sftpuser/upload
sudo systemctl restart sshd
⚠️ ChrootDirectory 必须由 root 拥有,且不能被普通用户写
如果你是 CentOS 7 / 8 / Stream,或需要 只允许 SFTP、禁止 SSH、多用户配置,告诉我我可以给你定制方案 ✅