温馨提示×

debian sftp怎样开启功能

小樊
41
2026-10-18 07:39:02
栏目: 智能运维

在 Debian 上“开启 SFTP 功能”通常分两种情况:

  1. 系统已装 OpenSSH,只需确认 SFTP 可用(最常见)
  2. 限制用户只能 SFTP,不能 SSH 登录(Chroot SFTP)

下面分别说明。


一、确认/开启普通 SFTP(最常用)

Debian 默认使用 OpenSSH,SFTP 一般已经开启。

1. 安装 SSH(如果没装)

sudo apt update
sudo apt install openssh-server

2. 启动并设置开机自启

sudo systemctl enable ssh
sudo systemctl start ssh

3. 确认 SFTP 子模块开启

编辑 SSH 配置:

sudo nano /etc/ssh/sshd_config

确保有以下一行(默认就有):

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

如果没有,加上这一行

4. 重启 SSH

sudo systemctl restart ssh

5. 测试

sftp user@服务器IP

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

适合文件服务器用户。

1. 创建用户

sudo useradd -m sftpuser
sudo passwd 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

5. 测试

sftp sftpuser@服务器IP

✅ 能登录
❌ 不能 ssh sftpuser@服务器IP


三、防火墙注意

如果开了防火墙:

sudo ufw allow 22

常见问题

  • 连接被拒:检查 ssh 服务是否运行
  • Permission denied:Chroot 目录必须是 root 拥有
  • SFTP 没反应:确认 Subsystem sftp 没被注释

如果你是想 只用 SFTP 不用 SSH,或 Docker / 无 root 权限环境,可以告诉我,我可以给你更具体的方案。

0 踩