1. 创建用户 sftp,并禁止 ssh 登录,不创建家目录:

    1. useradd -s /sbin/nologin -M sftp
  2. 设置密码:

    passwd sftp
    
  3. 创建 sftp 家目录:

    mkdir /data/sftp
    chown root:root /data/sftp
    chmod 755 /data/sftp
    
  4. 创建文件上传目录:

    mkdir /data/sftp/upload
    chown root:sftp /data/sftp/upload
    chmod 755 /data/sftp/upload
    
  5. 配置 sshd_config ```bash vim /etc/ssh/sshd_config

注释下面一行

Subsystem sftp /usr/libexec/openssh/sftp-server

添加下面几行

指定使用 sftp 服务使用系统自带的 internal-sftp

如果不添加,用户无法通过 sftp 登录。

Subsystem sftp internal-sftp

匹配用户

Match User sftp

chroot 指定用户根目录

ChrootDirectory /data/sftp/upload

指定 sftp 命令

ForceCommand internal-sftp

限制端口转发

X11Forwarding no AllowTcpForwarding no


6. 重启 sshd 服务器
```bash
systemctl restart sshd.service
  1. 登录测试
    sftp sftp@127.0.0.1