更新时间:2025-04-03 GMT+08:00
分享

搭建SFTP

简介

SFTP(Secure File Transfer Protocol)是一种用于安全访问、传输和管理大文件和敏感数据的网络协议,它通过SSH协议运行,能够支持SSH完整的安全和身份验证功能。本教程介绍如何在HCE 2.0上部署SFTP服务。

准备工作

  • 准备一台ECS实例,并分配公网IP或者弹性公网IP(EIP)。
  • 安全组的入方向规则已放行22端口。

操作步骤

  1. 配置SFTP服务。

    1. 执行如下命令创建sftp组:
      groupadd sftp
    2. 执行如下命令,创建一个用户,用户登录SFTP服务:
      useradd -g sftp -s /bin/false usftp
    3. 执行如下命令为上述新用户设置密码:
      passwd usftp
    4. 执行如下命令为sftp用户组创建home目录:
      mkdir -p /data/sftp/usftp
    5. 执行如下命令修改usftp用户登录时的目录:
      usermod -d /data/sftp/usftp usftp
    6. 打开/etc/ssh/sshd_config文件,找到以下参数进行配置:
      # 找到Subsystem配置项替换为以下配置
      Subsystem sftp internal-sftp
      
      # 在文件末尾添加如下配置:
      Match user usftp  # 匹配usftp用户
      AllowTcpForwarding no # 不允许转发TCP协议
      X11Forwarding no # 不允许进行 X11 转发
      # 使用chroot将用户根目录指定到/data/sftp/%u,%u代表用户名
      ChrootDirectory /data/sftp/usftp
      ForceCommand    internal-sftp # 强制执行内部sftp

      配置完成后执行以下命令重启sshd服务

      systemctl restart sshd
    7. 执行如下命令,创建测试文件:
      touch /data/sftp/usftp/test.txt
    8. 依次执行如下命令设置目录权限:
      chown -R root:sftp /data/sftp/usftp
      chmod 755 /data/sftp/usftp

  2. 验证。

    1. 在另外一台机器上,输入以下命令连接上述SFTP服务:
      sftp usftp@<SFTP服务公网IP>
    2. 输入密码后执行ls命令查看测试文件,效果如下图:
      sftp> ls
      test.txt

相关文档