温馨提示×

怎样在ubuntu开启sftp

小樊
40
2026-09-02 06:54:53
栏目: 智能运维

在 Ubuntu 上开启 SFTP(基于 SSH 的文件传输)其实很简单,因为 SFTP 是 SSH 的一部分,通常只要开启 SSH 服务即可使用。

下面按常见场景说明:


一、最常用方式(推荐):开启 SSH 即可使用 SFTP

1. 安装 OpenSSH Server

sudo apt update
sudo apt install openssh-server

2. 启动并设置开机自启

sudo systemctl enable ssh
sudo systemctl start ssh

3. 检查状态

sudo systemctl status ssh

看到 active (running) 就说明 OK。

4. 使用 SFTP

在客户端(如 FileZilla、命令行)连接:

sftp 用户名@服务器IP

示例:

sftp user@192.168.1.100

默认情况下,Ubuntu 安装 SSH 后 SFTP 就已经可用


二、限制用户只能使用 SFTP(不能登录 shell)

适合做“文件专用账号”。

1. 创建用户

sudo adduser sftpuser

2. 修改 SSH 配置

编辑:

sudo nano /etc/ssh/sshd_config

在文件末尾添加:

Match User sftpuser
    PasswordAuthentication yes
    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

这样该用户:

  • ✅ 能 SFTP
  • ❌ 不能 SSH 登录

三、防火墙放行(如有 UFW)

sudo ufw allow ssh

sudo ufw allow 22/tcp

四、常见问题

SFTP 连不上?

  • 确认 SSH 在运行
  • 确认端口(默认 22)
  • 确认用户密码 / 密钥正确
  • 云服务器需放行安全组 22 端口

如果你需要:

  • 配置 密钥登录 SFTP
  • 配置 多用户不同目录
  • 使用 vsftpd(非 SSH 的 FTP)

可以告诉我你的具体需求。

0