在 CentOS 上安装和配置 SFTP(基于 OpenSSH)其实非常简单,因为 SFTP 是 OpenSSH 自带的功能,一般不需要额外安装软件。下面按常见场景给你详细说明。
CentOS 通常默认已安装,但建议确认一下:
rpm -qa | grep openssh
如果没有,安装:
yum install -y openssh-server openssh-clients
启动并设置开机自启:
systemctl start sshd
systemctl enable sshd
SFTP 默认是 开启的,只要 SSH 能连,SFTP 就能用。
测试:
sftp 用户名@服务器IP
如果能连,说明 SFTP 已经可用 ✅
useradd -m -s /sbin/nologin sftpuser
passwd sftpuser
mkdir -p /data/sftp
chown root:root /data/sftp
chmod 755 /data/sftp
⚠️ SFTP 的根目录必须属主是 root,且不能被其他用户写
mkdir /data/sftp/upload
chown sftpuser:sftpuser /data/sftp/upload
chmod 755 /data/sftp/upload
编辑 SSH 配置文件:
vim /etc/ssh/sshd_config
Subsystem sftp internal-sftp
Match User sftpuser
ChrootDirectory /data/sftp
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
✅
ChrootDirectory限制用户只能访问/data/sftp
systemctl restart sshd
sftp sftpuser@127.0.0.1
sftp sftpuser@服务器IP
登录后:
pwd
ls
cd upload
put test.txt
查看日志:
tail -f /var/log/secure
必须满足:
| 系统 | 命令 |
|---|---|
| CentOS 7 | yum |
| CentOS 8 / Stream | dnf |
usermod -s /sbin/nologin sftpuser
如果你需要:
可以直接告诉我你的使用场景,我可以给你定制配置方案。