温馨提示×

怎么开启linux sftp服务

小樊
44
2026-08-27 02:43:57
栏目: 智能运维

在 Linux 上开启 SFTP 服务,通常不需要单独安装 SFTP,而是 通过 SSH 服务自带实现。下面按常见发行版给你一个完整、安全的开启步骤。


一、确认 SFTP 依赖的 SSH 服务

SFTP 是 SSH 的一部分,只要 SSH 正常运行,SFTP 一般就可用。

1️⃣ 检查 SSH 是否已安装

ssh -V

如果没有安装:

  • CentOS / Rocky / Alma
yum install -y openssh-server
  • Ubuntu / Debian
apt update
apt install -y openssh-server

二、启动并开启 SSH 服务(SFTP 依赖它)

2️⃣ 启动 SSH 服务

systemctl start sshd

设置开机自启:

systemctl enable sshd

检查状态:

systemctl status sshd

✅ 看到 active (running) 即表示 SFTP 已可用。


三、确认 SFTP 功能是否开启(默认是开启的)

SFTP 由 sshd_config 控制。

3️⃣ 查看配置

vim /etc/ssh/sshd_config

确认存在以下内容(一般默认就有):

Subsystem sftp /usr/libexec/openssh/sftp-server

或(新系统常见):

Subsystem sftp internal-sftp

✅ 只要没有被注释掉,SFTP 就是开启的。


四、测试 SFTP 是否可用

4️⃣ 本地测试

sftp localhost

或远程测试:

sftp user@服务器IP

五、常见需求:限制用户只能使用 SFTP(不能 SSH)

5️⃣ 创建 SFTP 专用用户

useradd -m sftpuser
passwd sftpuser

6️⃣ 修改 SSH 配置

编辑 /etc/ssh/sshd_config,添加:

Match User sftpuser
    ChrootDirectory /home/sftpuser
    ForceCommand internal-sftp
    X11Forwarding no
    AllowTcpForwarding no

7️⃣ 设置权限(非常重要)

chown root:root /home/sftpuser
chmod 755 /home/sftpuser
mkdir /home/sftpuser/upload
chown sftpuser:sftpuser /home/sftpuser/upload

8️⃣ 重启 SSH

systemctl restart sshd

✅ 该用户只能 SFTP,不能登录系统。


六、防火墙放行(如有)

firewall-cmd --add-service=ssh --permanent
firewall-cmd --reload

或(Ubuntu):

ufw allow 22

七、常见问题

❌ 连接被拒绝

  • SSH 没启动
  • 防火墙未放行 22 端口

❌ sftp 登录后无法上传

  • ChrootDirectory 权限不对
  • 上传目录不是用户可写

八、一句话总结

Linux 的 SFTP 服务 = SSH 服务 + 默认开启的 sftp subsystem

如果你告诉我:

  • ✅ 你的 Linux 发行版
  • ✅ 是否是云服务器
  • ✅ 是否需要限制用户权限

我可以给你一份 完全贴合你环境的配置方案

0