热门标签 | 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 了!

推荐阅读
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • dotnet 通过 Elmish.WPF 使用 F# 编写 WPF 应用
    本文来安利大家一个有趣而且强大的库,通过F#和C#混合编程编写WPF应用,可以在WPF中使用到F#强大的数据处理能力在GitHub上完全开源Elmis ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • MongoDB集群配置:副本集与分片详解
    本文详细介绍了如何在MongoDB中配置副本集(Replica Sets)和分片(Sharding),并提供了具体的步骤和命令,帮助读者理解并实现高可用性和水平扩展的MongoDB集群。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 在维护公司项目时,发现按下手机的某个物理按键后会激活相应的服务,并在屏幕上模拟点击特定坐标点。本文详细介绍了如何使用ADB Shell Input命令来模拟各种输入事件,包括滑动、按键和点击等。 ... [详细]
  • Scala 实现 UTF-8 编码属性文件读取与克隆
    本文介绍如何使用 Scala 以 UTF-8 编码方式读取属性文件,并实现属性文件的克隆功能。通过这种方式,可以确保配置文件在多线程环境下的一致性和高效性。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
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社区 版权所有