热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用SFTP密钥进行根目录不受限制的指定(第三部分)

20190127之前限制ChrootDirectory之后,需要对原有环境改造较多1.之前配置的网站都是直接存在在了varwww2、还没有部署网站的新服务器&#x

20190127 之前限制 ChrootDirectory 之后,需要对原有环境改造较多

1. 之前配置的网站都是直接存在在了 /var/www
2、还没有部署网站的新服务器,完全可行!
3、尝试了使用 ln 软连接 ,如果已经部署的网站较少,还是可行的,需要转移的网站代码比较少
4. ChrootDirectory 对于目录要求很严,必须所有人是 root ,供上传的子目录最好 chmod 777
5. /var/www 之前的来源很杂,有的所有人是root,有的是其他用户

1、目标和思路分析

1. 使用密钥方式 SFTP 相对安全
2. 不允许 SFTP 账号 ssh 登录
3. 直接 SFTP 登录直接指向 /var/www
4. 已经有 vsftp 存在,不能一刀切就停用 vsftp结论:我们需要一个账户
1. 限制它只能使用 SFTP
2. 不能使用 ssh
3. 他的 home 目录直接指向 /var/www

2、实施

1. 建立新用户,指定 home 为 /var/wwwuseradd -d /var/www dhbm162
2. 设置密码passwd dhbm162 ** 以下限制登录,可以在测试完成之后进行禁止登录sudo usermod -s /usr/sbin/nologin dhbm162 或者 禁止shellsudo usermod -s /bin/false dhbm162 恢复登录sudo usermod -s /bin/bash dhbm162 3. 修改 sshd_configsudo vim /etc/ssh/sshd_config添加以下 Match User 规则#################### add by wzh 2019017 only SFTP usersMatch User dhbm162ForceCommand internal-sftp# ChrootDirectory /home/dhbm162/www/** 注释掉之前的 ChrootDirectorysudo systemctl restart sshd4. 复制公钥文件,并修改 .ssh 权限sudo cp -R /home/dhbm/.ssh /var/wwwsudo chmod -R 755 /var/www/.ssh同时修改 /var/wwwsudo chmod -R 777 /var/www

3、 测试

1. 测试 sshssh dhbm162@192.168.1.162This service allows sftp connections only.Connection to 192.168.1.162 closed.2. 测试 SFTPsftp dhbm162@192.168.1.162Connected to dhbm162@192.168.1.162.sftp> 3. 测试 FileZilla
新建站点

结果


4、 结论

以上方案虽然没有限制 sftp 用户 ChrootDirectory,但是,使用密钥方式,保证了一定的安全
直接指定了 /var/www 目录,维持了过去 vsftp 的操作习惯

5、后续问题

以上 sudo chmod -R 777 /var/www 应该是不安全的做法!网站文件任何人都可以修改?还是需要指定拥有人才可以读写,其他人不可写!
如果有需要写权限的 uplaod 目录,必须手动单独修改!sudo chmod -R 755 /var/wwwsudo chown -R XXXX162:XXXX162 /var/www** 现在有点儿理解 ChrootDirectory 的根目录为什么最大只能 755 了!

推荐阅读
  • Docker网络基础探讨了如何通过高效的技术手段实现跨主机容器间的顺畅通信与访问。本文深入分析了Docker网络架构,特别是其在多主机环境下的应用,为Go语言开发者提供了宝贵的实践指导和理论支持。 ... [详细]
  • 基址获取与驱动开发:内核中提取ntoskrnl模块的基地址方法解析
    基址获取与驱动开发:内核中提取ntoskrnl模块的基地址方法解析 ... [详细]
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • 在Linux系统中,为了提高安全性,可以通过设置命令执行超时和用户超时注销来防止因用户长时间未操作而带来的安全隐患。具体而言,可以通过编辑 `/etc/profile` 文件,添加或修改相关参数,确保用户在指定时间内无操作后自动注销。此外,还可以利用 `timeout` 命令来限制特定命令的执行时间,进一步增强系统的稳定性和安全性。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • 本文深入剖析了ScheduledThreadPoolExecutor的并发执行机制及其源代码,详细解读了该线程池如何在指定延时或定期执行任务,探讨了其内部的工作原理和优化策略,为开发者提供了宝贵的参考和实践指导。 ... [详细]
  • RancherOS 是由 Rancher Labs 开发的一款专为 Docker 设计的轻量级 Linux 发行版,提供了一个全面的 Docker 运行环境。其引导镜像仅 20MB,非常适合在资源受限的环境中部署。本文将详细介绍如何在 ESXi 虚拟化平台上安装和配置 RancherOS,帮助用户快速搭建高效、稳定的容器化应用环境。 ... [详细]
  • Windows环境下详细教程:如何搭建Git服务
    Windows环境下详细教程:如何搭建Git服务 ... [详细]
  • 本文探讨了将PEBuilder转换为DIBooter.sh的方法,重点介绍了如何将DI工具集成到启动层,实现离线镜像引导安装。通过使用DD命令替代传统的grub-install工具,实现了GRUB的离线安装。此外,还详细解析了bootice工具的工作原理及其在该过程中的应用,确保系统在无网络环境下也能顺利引导和安装。 ... [详细]
  • 本文详细介绍了 Ansible Ad-Hoc 命令的使用方法,基于官方文档进行了中文翻译。Ad-Hoc 命令允许用户通过 `usr/bin/ansible` 快速执行一次性任务,适用于快速部署、配置管理和故障排查等场景。文中通过多个实例演示了 Ad-Hoc 命令的具体应用,帮助读者更好地理解和掌握这一强大工具。 ... [详细]
  • Spring框架中的面向切面编程(AOP)技术详解
    面向切面编程(AOP)是Spring框架中的关键技术之一,它通过将横切关注点从业务逻辑中分离出来,实现了代码的模块化和重用。AOP的核心思想是将程序运行过程中需要多次处理的功能(如日志记录、事务管理等)封装成独立的模块,即切面,并在特定的连接点(如方法调用)动态地应用这些切面。这种方式不仅提高了代码的可维护性和可读性,还简化了业务逻辑的实现。Spring AOP利用代理机制,在不修改原有代码的基础上,实现了对目标对象的增强。 ... [详细]
  • 【Linux】CentOS 7 远程连接指南:高效安全的远程管理方法
    在 CentOS 7 中实现高效且安全的远程管理,本文详细介绍了如何检查和安装配置 OpenSSH。首先,通过 `yum list installed` 命令检查系统是否已安装 OpenSSH,若未安装,则使用 `yum install openssh-server` 进行安装。随后,配置 SSH 服务以确保其安全性和稳定性,包括修改默认端口、禁用 root 登录等关键步骤。此外,还提供了常见问题的解决方案,帮助用户顺利进行远程连接。 ... [详细]
  • Linux学习精华:程序管理、终端种类与命令帮助获取方法综述 ... [详细]
  • 在Linux系统中,MySQL的用户权限管理是运维人员必须掌握的关键技能之一。本文详细介绍了MySQL用户和权限管理的相关概念,包括MySQL用户的概念及其与VSFTPD虚拟用户的相似性,以及密码管理的重要性。此外,还深入探讨了如何通过命令行工具和配置文件进行用户权限的设置和调整,确保系统的安全性和稳定性。 ... [详细]
  • 在Linux环境中,通过编写Shell脚本来实现自定义命令的创建与激活,能够极大地简化服务器上多个子系统的管理操作。例如,通过简单的命令如“tt”,即可快速查看各个应用程序的名称及其运行状态,从而提高系统维护的效率和便捷性。 ... [详细]
author-avatar
mobiledu2502876733
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有