温馨提示×

debian怎样开启sftp功能

小樊
43
2026-10-06 13:41:42
栏目: 智能运维

在 Debian 中,SFTP 通常是通过 OpenSSH 自带的 sftp-server 提供的,只要安装了 openssh-server,一般就默认支持 SFTP,不需要额外“开启”特殊服务。下面按常见情况说明。


一、确认并安装 OpenSSH Server

1. 检查是否已安装

dpkg -l | grep openssh-server

2. 如果未安装

sudo apt update
sudo apt install openssh-server

3. 启动并设置开机自启

sudo systemctl enable ssh
sudo systemctl start ssh

注:Debian 中 SSH 服务名通常是 ssh


二、确认 SFTP 已启用(默认就是启用的)

查看 SSH 配置:

sudo nano /etc/ssh/sshd_config

确保有以下内容(默认存在):

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

如果存在且未被注释(#),说明 SFTP 已开启。

修改后重启 SSH:

sudo systemctl restart ssh

三、测试 SFTP 是否可用

在客户端执行:

sftp username@服务器IP

如果能登录,说明 SFTP 正常工作。


四、限制用户只能使用 SFTP(常用安全配置)

如果你希望某些用户只能 SFTP,不能 SSH 登录:

1. 创建用户

sudo adduser sftpuser

2. 修改 sshd_config

sudo nano /etc/ssh/sshd_config

在文件末尾添加:

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

4. 重启 SSH

sudo systemctl restart ssh

五、防火墙注意

如果启用了防火墙:

sudo ufw allow ssh

(SFTP 使用 SSH 的 22 端口)


六、常见问题

  • 能 SSH 不能 SFTP?
    检查 Subsystem sftp 是否被注释
  • 登录后被踢出?
    通常是 ChrootDirectory 权限不正确
  • Debian 12+?
    同样适用,服务仍是 ssh

如果你有具体需求(比如:只允许 SFTP、不能登录系统、多用户隔离、使用密钥登录),可以告诉我,我可以给你一份完整配置示例。

0 踩