news 2026/10/17 1:16:42

HoRain云--CentOS7搭建安全SFTP服务器全攻略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HoRain云--CentOS7搭建安全SFTP服务器全攻略

🎬 HoRain云小助手:个人主页

🔥 个人专栏: 《Linux 系列教程》《c语言教程》

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

🔧 安装与检查OpenSSH

👤 创建专用的SFTP用户和组

📁 建立安全的目录结构

⚙️ 配置SSH服务器(关键步骤)

🚀 重启服务与测试连接

⚠️ 常见问题排查


在CentOS 7上搭建一个安全的SFTP服务器,核心是配置一个“监牢”环境,将用户限制在指定目录内。下面这张流程图帮你快速了解整个操作的全貌。

flowchart TD A[开始搭建SFTP服务器] --> B[安装与启动OpenSSH] B --> C[创建专用用户和组] C --> D[建立严格的目录结构] D --> E[配置SSH以启用chroot] E --> F[重启服务并测试] F --> G[SFTP服务就绪] C --> C1[创建用户组sftpusers] C --> C2[创建用户并禁止shell登录] D --> D1[设置根目录属主为root] D --> D2[创建用户可写的子目录] E --> E1[启用internal-sftp] E --> E2[匹配用户组并设置chroot] F --> F1[重启sshd服务] F --> F2[使用客户端连接测试]

以下是每个步骤的详细操作说明。

🔧 安装与检查OpenSSH

SFTP是OpenSSH的一个子系统,因此首先需要确保OpenSSH服务器已安装并运行。

  1. 安装OpenSSH服务器(通常系统已预装):

    sudo yum install -y openssh-server
  2. 启动并设置开机自启:

    sudo systemctl start sshd sudo systemctl enable sshd
  3. 检查防火墙:如果防火墙(firewalld)是开启状态,需要放行SSH默认的22端口。

    sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload

    如果使用的是云服务器(如阿里云、腾讯云),还需在云平台的安全组规则中放行TCP 22端口。

👤 创建专用的SFTP用户和组

为了管理方便和安全,我们为SFTP用户创建一个独立的组和用户。

  1. 创建用户组(例如sftpusers):

    sudo groupadd sftpusers
  2. 创建SFTP用户(例如用户名为mysftpuser),并禁止其通过SSH获得Shell终端,这是关键的安全措施:

    sudo useradd -g sftpusers -s /sbin/nologin mysftpuser
  3. 为用户设置密码:

    sudo passwd mysftpuser

📁 建立安全的目录结构

这是实现“监牢”环境的物理基础,目录权限设置至关重要。

  1. 创建SFTP根目录:选择一个目录作为所有SFTP用户的根目录,例如/sftp。

    sudo mkdir /sftp
  2. 设置根目录权限:该目录的拥有者必须是root,且其他用户不能有写权限,否则SSH会出于安全考虑拒绝连接。

    sudo chown root:root /sftp sudo chmod 755 /sftp # 权限必须是755或更严格(如750)
  3. 创建用户专属目录:在根目录下为刚创建的用户建立一个目录,此目录将是该用户登录后看到的唯一位置。

    sudo mkdir /sftp/mysftpuser
  4. 设置用户子目录权限:用户专属目录的权限同样需要严格设置。

    sudo chown root:root /sftp/mysftpuser # 属主仍为root sudo chmod 755 /sftp/mysftpuser
  5. 创建用户可操作的子目录:用户需要一个有写权限的目录来上传文件,例如upload。

    sudo mkdir /sftp/mysftpuser/upload sudo chown mysftpuser:sftpusers /sftp/mysftpuser/upload # 此目录属主为用户 sudo chmod 755 /sftp/mysftpuser/upload # 可根据需要设置为766或770

⚙️ 配置SSH服务器(关键步骤)

通过修改SSH配置文件,将用户锁定在指定的根目录内。

  1. 编辑配置文件:

    sudo vi /etc/ssh/sshd_config
  2. 在文件末尾添加以下配置:这些配置指示SSH为sftpusers组的用户启用内部SFTP服务,并将其限制在指定的根目录。

    # 注释掉或确保以下行存在,使用内置SFTP实现 Subsystem sftp internal-sftp # 匹配sftpusers组,应用以下规则 Match Group sftpusers # 设置chroot根目录,%u代表用户名,这里用户将锁定在/sftp/mysftpuser ChrootDirectory /sftp/%u # 强制使用SFTP,禁止Shell访问 ForceCommand internal-sftp # 禁用不相关的功能以增强安全 AllowTcpForwarding no X11Forwarding no
  3. 在保存修改前,务必检查配置语法,防止配置错误导致SSH服务无法启动:

    sudo sshd -t

    如果该命令没有输出任何错误信息,说明配置文件语法正确。

🚀 重启服务与测试连接

  1. 重启SSH服务以应用所有更改:

    sudo systemctl restart sshd
  2. 使用SFTP客户端连接测试:

⚠️ 常见问题排查

按照以上步骤操作,你就能在CentOS 7上成功搭建一个安全的SFTP服务器了。如果你在配置过程中遇到具体问题,例如错误信息,可以告诉我,我们再一起分析。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/13 22:41:28

摆脱论文困扰! 降AI率平台 千笔·降AI率助手 VS 文途AI,MBA专属首选

在AI技术迅速发展的今天,越来越多的MBA学生开始借助AI工具辅助论文写作,以提升效率和内容质量。然而,随着学术审查标准的不断提高,AI生成内容的痕迹越来越容易被识别,论文中的“AI率”问题也逐渐成为困扰学生的重大难题…

作者头像 李华
网站建设 2026/10/13 14:30:47

Zen Browser v1.18.4b 丨开源跨平台浏览器

Zen Browser v1.18.4b 是基于 Gecko 内核打造的开源跨平台浏览器,该浏览器主打广告与跟踪器智能拦截,同时兼顾极致流畅的网页浏览体验,本次 v1.18.4b 新版本完成了多项功能问题修复与使用体验优化,为用户打造更高效、更稳定的网页…

作者头像 李华
网站建设 2026/10/11 10:04:02

引入AI辅助的3D游戏美术工作流

不同于其他类型的AI应用,3D内容的AI生成应用所面向的行业更加垂直,会有一定的专业使用门槛,并且生成的产物与直接投入生产环境的内容往往还存在一定的距离。笔者这里针对小型独立游戏/Demo的场景下,为提高3D游戏美术工作效率和降低…

作者头像 李华
网站建设 2026/10/9 20:10:17

Python入门:从安装到第一个程序

好的,我们来梳理一下Python的基础与环境配置要点: 1. Python 是什么? Python 是一种高级编程语言,以简洁易读的语法著称。它支持多种编程范式(面向对象、函数式等),广泛应用于数据分析、人工智…

作者头像 李华
网站建设 2026/10/15 19:29:21

RanUI:一款回归纯粹的高性能PHP博客/内容管理系统

RanUI:一款回归纯粹的高性能PHP博客/内容管理系统 在追求速度与极简的今天,你是否已经厌倦了臃肿、复杂,动辄加载数秒的CMS系统?对于真正专注于内容创作的博主和开发者而言,一个响应迅速、核心纯净、但又具备足够扩展…

作者头像 李华