温馨提示×

如何开启Ubuntu SFTP

小樊
33
2026-07-18 02:53:25
栏目: 智能运维

在 Ubuntu 上开启 SFTP(SSH File Transfer Protocol) 通常不需要额外安装服务,因为 SFTP 是 OpenSSH 的一部分。只要 SSH 服务正常运行,SFTP 就默认可用。

下面按常见场景给你完整说明。


一、确认并开启 SSH(SFTP 依赖 SSH)

1. 安装 OpenSSH Server(如果尚未安装)

sudo apt update
sudo apt install openssh-server

2. 启动并设置开机自启

sudo systemctl start ssh
sudo systemctl enable ssh

3. 确认 SSH 服务状态

sudo systemctl status ssh

看到 active (running) 即表示正常。

到此为止,SFTP 已经开启,默认端口 22


二、测试 SFTP 是否可用

从本机测试

sftp localhost

从另一台电脑连接

sftp 用户名@服务器IP

示例:

sftp user@192.168.1.100

三、配置 SFTP(可选但常用)

1. 修改 SSH 配置文件

sudo nano /etc/ssh/sshd_config

确认或添加以下内容:

Subsystem sftp internal-sftp

2. 限制用户只能使用 SFTP(不能 SSH 登录)

例如限制用户 sftpuser

Match User sftpuser
    ChrootDirectory /home/sftpuser
    ForceCommand internal-sftp
    X11Forwarding no
    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

⚠️ ChrootDirectory 必须由 root 拥有,且不能被普通用户写


四、重启 SSH 服务

sudo systemctl restart ssh

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

sudo ufw allow 22
sudo ufw reload

六、客户端连接方式

Linux / macOS

sftp user@ip

Windows

推荐使用:

  • FileZilla
  • WinSCP
  • MobaXterm

协议选择 SFTP(不是 FTP)


七、常见问题

❓ SFTP 连不上?

检查:

  • SSH 是否运行
  • 防火墙是否放行 22
  • 用户是否被限制 Chroot 但权限不对

❓ SFTP 和 FTP 一样吗?

不一样:

项目 SFTP FTP
协议 SSH TCP
加密
默认端口 22 21

如果你需要:

  • 只允许 SFTP 不允许 SSH
  • 多用户隔离
  • 修改默认端口
  • 使用密钥登录

可以直接告诉我你的使用场景,我可以给你定制配置。

0