更新时间:2024-12-06 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 sftp internal-sftp
      # 在文件末尾添加如下配置:
      Match user usftp  # 匹配usftp用户
      AllowTcpForwarding no # 不允许转发TCP协议
      X11Forwarding no # 不允许进行 X11 转发
      # 使用chroot将用户根目录指定到/data/sftp/%u,%u代表用户名
      ChrootDirectory /data/sftp/ 
      ForceCommand    internal-sftp # 强制执行内部sftp
    7. 执行如下命令,创建测试文件。
      touch /data/sftp/usftp/test.txt
    8. 依次执行如下命令设置目录权限。
      chown -R usftp:sftp /data/sftp/usftp
      chmod 755 /data/sftp/usftp

  2. 验证。

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