在 CentOS 上,SFTP 本身不需要单独安装,因为它是 OpenSSH 的一部分。你只需要确保 openssh-server 已安装并运行即可。
下面是完整步骤:
rpm -qa | grep openssh
一般你会看到类似:
openssh-8.x.x
openssh-server-8.x.x
openssh-clients-8.x.x
如果没有 openssh-server,就需要安装。
sudo yum install -y openssh-server
(CentOS 8 / Stream 也可用 dnf)
sudo dnf install -y openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
查看状态:
sudo systemctl status sshd
SFTP 默认由 /etc/ssh/sshd_config 中的这一段支持:
Subsystem sftp /usr/libexec/openssh/sftp-server
(CentOS 某些版本可能是 internal-sftp,都正常)
测试连接:
sftp username@server_ip
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
在 /etc/ssh/sshd_config 末尾添加:
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
然后:
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
重启 SSH:
sudo systemctl restart sshd
sudo useradd -m sftpuser
sudo passwd sftpuser
❌ 连不上
sshd 是否运行getenforce
sudo setenforce 0
如果你告诉我:
我可以给你更精确的配置示例。