温馨提示×

debian怎么开启sftp服务

小樊
45
2026-09-18 17:57:54
栏目: 智能运维

在 Debian 上,SFTP 本身是由 OpenSSH 提供的,通常不需要单独安装“SFTP 服务”,只要装了 openssh-server 就自带 SFTP 功能。下面按常见情况说明。


一、最常用情况(系统用户 SFTP)

1. 安装 OpenSSH Server

sudo apt update
sudo apt install openssh-server

2. 确保 SSH 服务运行

sudo systemctl enable ssh
sudo systemctl start ssh

3. 检查 SFTP 子模块是否启用

编辑 SSH 配置:

sudo nano /etc/ssh/sshd_config

确认有以下内容(默认一般都有):

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

如果没有,加上这一行,然后:

sudo systemctl restart ssh

4. 测试 SFTP

sftp 用户名@服务器IP

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

1. 创建用户

sudo adduser sftpuser

2. 修改 sshd_config

sudo nano /etc/ssh/sshd_config

在文件末尾添加:

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

三、防火墙注意

如果开了防火墙:

sudo ufw allow 22

四、常见问题

  • 连不上:检查 sshd 是否运行、22 端口是否开放
  • permission denied:目录权限或 Chroot 设置错误
  • want sftp only:用 ForceCommand internal-sftp

如果你是想:

  • 非系统用户
  • Docker
  • FTP 客户端(FileZilla)
  • 或做 只读 / 多用户隔离

可以告诉我具体需求,我给你对应配置。

0