在 CentOS 上开启 SFTP 功能,通常不需要额外安装软件,因为 SFTP 是基于 SSH 的,只要 SSH 服务正常,SFTP 一般就可以用。下面按常见场景说明。
rpm -qa | grep openssh
一般会有:
opensshopenssh-serveropenssh-clients如果没有:
yum install -y openssh-server
systemctl start sshd
systemctl enable sshd
systemctl status sshd
CentOS 默认 已开启 SFTP,无需额外配置。
测试:
sftp user@服务器IP
如果能连接,说明 SFTP 已开启。
编辑 SSH 配置文件:
vi /etc/ssh/sshd_config
确保有以下内容(一般默认存在):
Subsystem sftp /usr/libexec/openssh/sftp-server
如果被注释或修改了,恢复为上面这行。
修改后重启 SSH:
systemctl restart sshd
适合做文件上传/下载用户。
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
SFTP 使用 SSH 端口(默认 22):
firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload
setsebool -P ssh_chroot_rw_homedirs on
sftp user@ip
如果你愿意,可以告诉我:
我可以给你一份更精确的配置方案。