温馨提示×

怎样在ubuntu开启sftp服务

小樊
46
2026-09-17 11:36:47
栏目: 智能运维

在 Ubuntu 上开启 SFTP 服务其实不需要单独安装 SFTP 服务,因为 SFTP 是基于 OpenSSH 的子系统,只要 SSH 服务可用,SFTP 通常就可以直接使用。

下面是标准、安全的开启方式(适用于 Ubuntu 20.04 / 22.04 / 24.04)。


一、确认并安装 OpenSSH Server

1. 安装 SSH 服务

sudo apt update
sudo apt install openssh-server

2. 启动并设置开机自启

sudo systemctl enable ssh
sudo systemctl start ssh

3. 检查状态

sudo systemctl status ssh

看到 active (running) 就说明没问题。


二、确认 SFTP 已启用(默认已启用)

SFTP 依赖 SSH 的 sftp-server,一般默认配置已经包含。

查看配置文件:

sudo nano /etc/ssh/sshd_config

确认有以下内容(通常默认存在):

Subsystem sftp /usr/lib/openssh/sftp-server

如果没有,手动加上,然后保存。


三、重启 SSH 使配置生效

sudo systemctl restart ssh

四、测试 SFTP 连接

在客户端(Linux / macOS):

sftp username@服务器IP

Windows 可用:

  • FileZilla
  • WinSCP
  • Xshell / PuTTY 的 sftp

五、限制用户只能使用 SFTP(可选,推荐)

如果你想禁止 SSH 登录,只允许 SFTP,可以这样做:

1. 创建用户

sudo adduser sftpuser

2. 修改 sshd_config

sudo nano /etc/ssh/sshd_config

在文件末尾添加:

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

3. 设置目录权限(非常重要)

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

4. 重启 SSH

sudo systemctl restart ssh

此时该用户不能 SSH 登录,只能 SFTP


六、防火墙注意(如有)

如果启用了 UFW:

sudo ufw allow ssh

常见问题

  • ❌ 连接被拒绝 → SSH 没启动 / 防火墙拦截
  • ❌ Permission denied → 用户名或密码错误
  • ❌ Chroot 失败 → 目录属主必须是 root

如果你告诉我:

  • Ubuntu 版本
  • 是否要限制用户只能 SFTP
  • 是否用于服务器生产环境

我可以给你更精确的配置方案。

0