温馨提示×

怎样在debian开启sftp功能

小樊
38
2026-09-24 22:08:32
栏目: 智能运维

在 Debian 上开启 SFTP(基于 SSH 的文件传输)通常不需要额外安装服务,因为 OpenSSH 自带 SFTP 子系统。下面是标准做法:


一、确认并安装 OpenSSH Server

  1. 更新软件包索引
sudo apt update
  1. 安装 SSH 服务(如果还没装)
sudo apt install openssh-server
  1. 启动并设置开机自启
sudo systemctl enable ssh
sudo systemctl start ssh

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

编辑 SSH 配置文件:

sudo nano /etc/ssh/sshd_config

确保有以下一行(通常默认存在):

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

如果没有,手动添加后保存。

重启 SSH 服务:

sudo systemctl restart ssh

此时 SFTP 已经可以使用了(使用系统用户名和密码或密钥登录)。


三、使用 SFTP(示例)

从客户端连接:

sftp user@server_ip

或使用 FileZilla / WinSCP:

  • 协议:SFTP
  • 主机:服务器 IP
  • 端口:22
  • 用户名 / 密码(或密钥)

四、限制用户只能使用 SFTP(可选,推荐)

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

  1. 创建用户
sudo adduser sftpuser
  1. 修改 sshd_config
sudo nano /etc/ssh/sshd_config

在文件末尾添加:

Match User sftpuser
    ChrootDirectory /home/sftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
  1. 设置目录权限(非常重要)
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
sudo mkdir /home/sftpuser/upload
sudo chown sftpuser:sftpuser /home/sftpuser/upload
  1. 重启 SSH
sudo systemctl restart ssh

五、常见问题排查

  • 连不上:检查防火墙
    sudo ufw allow 22
    
  • 权限错误(chroot):ChrootDirectory 必须属主为 root
  • SELinux:Debian 默认无 SELinux,可忽略

如果你需要:

  • 配置 SFTP 公钥登录
  • 配置 多个用户隔离
  • 或用 vsftpd / proftpd 而不是 SSH SFTP

可以告诉我你的使用场景,我可以给你更具体的配置方案。

0 踩