温馨提示×

debian怎么开启sftp功能

小樊
37
2026-10-09 13:08:21
栏目: 智能运维

在 Debian 上,SFTP 功能通常默认就是开启的,因为它由 OpenSSH 服务器提供。下面一步步说明如何确认和开启。


一、确认是否已安装并运行 SSH 服务

1. 安装 OpenSSH Server(如果还没装)

sudo apt update
sudo apt install openssh-server

2. 检查 SSH 服务状态

systemctl status ssh

如果没有运行:

sudo systemctl start ssh
sudo systemctl enable ssh

二、SFTP 默认是否已开启?

SFTP 使用的是 SSH 的子系统,Debian 默认配置中已经包含:

cat /etc/ssh/sshd_config | grep sftp

通常你会看到:

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

只要有这一行,SFTP 就是可用的。


三、测试 SFTP 是否可用

在另一台机器上执行:

sftp 用户名@服务器IP

如果能连接并进入 sftp> 提示符,说明已开启。


四、只允许 SFTP(禁止 SSH 登录,可选)

如果你想让某些用户只能用 SFTP,不能登录 shell:

1. 修改 /etc/ssh/sshd_config,添加:

Match Group sftpusers
    ChrootDirectory /home/%u
    ForceCommand internal-sftp
    AllowTcpForwarding no

2. 创建用户和组

sudo groupadd sftpusers
sudo useradd -m -g sftpusers -s /usr/sbin/nologin sftpuser
sudo passwd sftpuser

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

五、防火墙注意

如果开了防火墙,确保 22 端口开放:

sudo ufw allow 22

六、常见问题

  • ❌ 连不上:检查 ssh 服务是否运行
  • ❌ Permission denied:用户密码或权限问题
  • ❌ chroot 失败:目录必须属主为 root

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

  • 是 普通 SFTP 还是 限制用户目录
  • Debian 版本(如 11 / 12)

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

0 踩