在 CentOS 上开启 SFTP 服务,其实 SFTP 是基于 SSH 的,一般不需要单独安装 SFTP 服务,只要 SSH 服务正常即可。
下面按常见情况给你说明:
rpm -qa | grep openssh
一般有:
openssh-serveropenssh-clients如果没有:
yum install -y openssh-server
systemctl start sshd
systemctl enable sshd
systemctl status sshd
看到 active (running) 就说明 OK。
✅ 到这一步,SFTP 已经可以使用了(默认端口 22)
sftp username@localhost
sftp username@服务器IP
firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload
或指定端口(如 2222):
firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --reload
如果你希望 用户只能 SFTP,不能 SSH 登录:
vi /etc/ssh/sshd_config
添加或修改:
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
chown root:root /home/sftpuser
chmod 755 /home/sftpuser
mkdir /home/sftpuser/upload
chown sftpuser:sftpuser /home/sftpuser/upload
systemctl restart sshd
sshd 是否运行setenforce 0
ChrootDirectory 权限不对(必须是 root 拥有)如果你愿意,可以告诉我:
我可以直接给你一份完整配置。