温馨提示×

debian sftp怎么开启

小樊
44
2026-10-24 04:30:39
栏目: 智能运维

在 Debian 上开启 SFTP(基于 SSH 的 FTP)通常不需要额外安装 FTP 服务,因为 OpenSSH 自带 SFTP。下面是常见做法和注意事项。


一、确认并安装 OpenSSH Server

Debian 默认可能没有装 openssh-server

sudo apt update
sudo apt install openssh-server

启动并设置开机自启:

sudo systemctl enable ssh
sudo systemctl start ssh

SFTP 使用的是 22 端口(SSH),不是 FTP 的 21 端口


二、默认 SFTP 已可用(最简单)

只要 SSH 正常,SFTP 就已经开启:

sftp user@服务器IP

如果登录成功,说明 SFTP 已可用。


三、限制用户只能使用 SFTP(不能 SSH 登录)

这是生产环境常见需求。

1️⃣ 创建专用 SFTP 用户

sudo adduser sftpuser

2️⃣ 修改 SSH 配置

编辑:

sudo nano /etc/ssh/sshd_config

在文件末尾添加:

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

现在 sftpuser 只能 SFTP,不能 SSH。


四、防火墙(如有)

确保 22 端口开放:

sudo ufw allow 22

五、常见问题

❌ 登录失败 / 权限错误

  • Chroot 目录必须是 root 所有
  • 上层目录不能有 group/other 写权限

❌ SFTP 连不上

  • 确认 ssh 服务在运行
  • 确认不是被云厂商安全组拦截

如果你愿意,可以告诉我:

  • 是 个人使用 还是 多用户隔离
  • 是否要 禁止 SSH 登录
  • 是否是 Docker / 云服务器

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

0 踩