Ubuntu系统中开启sftp功能

概述

本文主要介绍Ubuntu系统中开启sftp功能的方法。

 

详细信息

本文创建的用户组和用户以实际环境为准。

  1. Ubuntu由于没有安装openssl服务,因此需要执行如下命令进行安装。
    sudo apt-get install openssh-server
  2. 执行如下命令,创建SFTP用户组,方便进行管理测试。
    提示:也可以不进行创建,直接使用root用户。
    sudo addgroup sftp-test
  3. 依次执行如下命令,创建SFTP用户,并配置相应权限。
    sudo adduser alice
    sudo usermod -G sftp-test -s /bin/false alice
  4. 依次执行如下命令,创建SSH用户组,并把管理员加入到该组。
    sudo addgroup ssh-users
    sudo usermod -a -G ssh-users admin
    注:-a参数的意思是不从其他用户组用移除用户。
  5. 执行如下命令,编辑SSH配置文件。
    sudo nano /etc/ssh/sshd_config
  6. 在sshd_config文件的中,添加如下内容。
    AllowGroups ssh-users sftp-users
    Match Group sftp-users
     ChrootDirectory /home/sftp_root
     AllowTcpForwarding no
     X11Forwarding no
    ForceCommand internal-sftp
    注:
    • AllowGroups ssh-users sftp-users:只允许ssh-uers及sftp-users通过SSH访问系统。
    • Match Group sftp-users:针对sftp-users用户,额外增加一些设置。
    • ChrootDirectory /home/sftp_root:将/home/sftp_root设置为该组用户的系统根目录,因此它们将不能访问该目录之外的其他系统文件。
    • AllowTcpForwarding no和X11Forwarding no:禁止TCP Forwarding和X11 Forwarding。
    • ForceCommand internal-sftp:强制该组用户仅仅使用SFTP。
  7. 重启系统以便使新配置生效。
    提示:执行重启等风险操作前,需要保证业务的正常进行并做好数据备份。

 

适用于

  • 云服务器 ECS