1、创建专用用户组

sudo groupadd sftpgroup  # 创建组用于统一管理SFTP用户[1,6](@ref)

2、​添加用户并限制Shell

sudo useradd -m -d /data/sftpusr/sftpdata01 -G sftpgroup -s /sbin/nologin sftpdata01    # 指定家目录并禁止SSH登录[8](@ref) 
sudo passwd sftpdata01 # 设置用户密码

3、​初始化目录权限

sudo chown root:root /data/sftpusr/            # Chroot主目录必须归属root[3,6](@ref)
sudo chmod 755 /data/sftpusr/ # 权限需为755以保证安全性

4、​修改SSH服务限制

(1)修改sshd_config文件
# 原SFTP配置已注释
#Subsystem sftp  /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp

# 其他原有配置...

# 用户sftpdata01的隔离配置
Match User sftpdata01
   ChrootDirectory /data/sftpusr/
   ForceCommand internal-sftp
   AllowTcpForwarding no
   X11Forwarding no
   PermitTTY no

5、​​创建用户可写子目录

sudo mkdir /data/sftpusr/sftpdata01
sudo chown sftpdata01:sftpgroup /data/sftpusr/sftpdata01 # 允许用户上传文件[1,7](@ref)
sudo chmod 770 /data/sftpusr/sftpdata01 # 组内用户可读写

6、​调整SELinux策略

sudo chcon -t sshd_chroot_t /data/sftpusr/sftpdata01  # 修改目录安全上下文[6](@ref)
sudo setsebool -P ssh_chroot_rw_homedirs on # 允许Chroot目录读写

7、​​​放行SFTP端口

sudo firewall-cmd --permanent --add-service=ssh  # 开放22端口(默认SFTP端口)
sudo firewall-cmd --reload

8、重启SSH服务

sudo systemctl restart sshd  # 应用配置[2,6](@ref)

CentOS安装SFTP的更多相关文章

  1. centos安装sftp服务

    一.创建sftp服务数据目录及相关测试用户 [root@localhost ~]# mkdir -pv /data/sftp/ #sftp数据目录 [root@localhost ~]# chown ...

  2. centos 安装sftp服务

    打开命令终端窗口,按以下步骤操作. 0.查看openssh的版本 ssh -V 使用ssh -V 命令来查看openssh的版本,版本必须大于4.8p1,低于的这个版本需要升级.  1.创建sftp组 ...

  3. Centos7.3安装sftp服务和ssh

    Centos安装SFTP 安装SFTP服务         1. 查看openssh版本             ssh -V             openssh版本必须大于4.8p1       ...

  4. CentOS 7.4 初次手记:第二章 CentOS安装步骤

    第二章 CentOS安装步骤... 18 第一节 下载... 18 第二节 分区参考... 18 第三节 安装... 19 I Step 1:引导... 19 II Step 2:配置... 20 I ...

  5. centos安装启动ssh服务

    centos安装启动ssh服务 #rpm -qa |grep ssh 检查是否装了SSH包 没有的话yum install openssh-server #chkconfig --list sshd ...

  6. CentOS安装gitlab,gerrit,jenkins并配置ci流程

    CentOS安装gitlab,gerrit,jenkins并配置ci流程 By Wenbin juandx@163.com 2016/4/9 这是我参考了网上很多的文档,配置了这三个软件在一个机器上, ...

  7. 【推荐】CentOS安装Subversion-1.8.11+HTTP协议支持配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. 我们需要搭建一个自己的SVN服务器. 此外,搭建好的SVN服务器除了需要支持svn协议外,最好还需要支持HTTP协议和HTTPS协 ...

  8. 【推荐】CentOS安装PHP-5.6.4+扩展安装+安全配置+性能配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 前段时间PHP官方发布了一个重要的安全升级公告,修复了两个unserialize函数的严重漏洞,目前受影响的版本有: ...

  9. CentOS安装Apache-2.4.10+安全配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 在安装Nginx之前,请确保已经使用yum安装了各基础组件,并且配置了www用户和用户组,具体见<CentOS ...

  10. CentOS安装Nginx-1.6.2+安全配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 在安装Nginx之前,请确保已经使用yum安装了pcre等基础组件,具体见<CentOS安装LNMP环境的基础 ...

随机推荐

  1. [BZOJ4771] 七彩树 题解

    好题,又学两个思路. 先把问题变简单一点,去掉深度限制,那么有两种做法: 经典的前驱后继转化到二维数点. 颜色相同的点按 \(dfs\) 序排序,每个点 \(+1\),相邻两点 \(lca-1\).转 ...

  2. div剩余高度自动填充满

    这边采用弹性布局来处理 在需要被填充满的div上设置display:flex;,然后根据你所需要填充宽度(flex-direction:column;)高度(flex-direction:row;)设 ...

  3. Winform ShowDialog如何让先前Show的窗体可以交互

    背景描述 最近项目中有一个需求,全局有一个共用的窗体,能够打开不同模块的报告,由于需要兼容不同模块,代码复杂,启动速度慢.优化方案为将窗体启动时就创建好,需要查看报告时,使用此单例弹窗加载不同模块下的 ...

  4. C#中固定编译时不确定数量的变量(相关话题fixed固定多个数组)

    以交错数组byte[][]为例. fixed无法固定byte[][],只能在编译时固定确定数量的变量. 交错数组byte[][]中的每一个byte[]可以采用GCHandle进行固定. int n = ...

  5. centos 8 编译*.cpp文件

    1.安装g++ yum -y install gcc-c++ 2.编译*.cpp文件 g++ -o test_app_name test_source_file.cpp 3.运行编译结果 ./test ...

  6. 【问题】抓取微信公众号文章 特殊字符(&#65279;)问题

    最初对抓取的文章处理使用正则表达式统一处理,代码如下: Regex regex_p = new Regex(@"<p>\s*</p>", RegexOpti ...

  7. AI 代理的未来是事件驱动的

    AI 代理即将彻底改变企业运营,它们具备自主解决问题的能力.适应性工作流以及可扩展性.但真正的挑战并不是构建更好的模型. 代理需要访问数据.工具,并且能够在不同系统之间共享信息,其输出还需要能被多个服 ...

  8. JDK8-时间格式化类-时区类-工具类--java进阶day07

    1.时间格式化类:DateTimeFormatter 1.创建方式 使用DateTimeFormatter调用ofPattern方法即可 . 2.格式化方法 创建好DateTimeFormatter对 ...

  9. AI应用部署本地步骤

    训练 微调 Ollama Gpt-Sovits Stable-Diffusion

  10. socket tcp断线重连

    一.网上常用方法1.当Socket.Conneted == false时,调用如下函数进行判断 点击(此处)折叠或打开 /// <summary> /// 当socket.connecte ...