【Linux 操作系统配置 SFTP】
Linux 操作系统配置 SFTP
sftp采用的是ssh加密隧道,安装性方面较ftp强,而且依赖的是系统自带的ssh服务,不像ftp还需要额外的进行安装基于 ssh 的 sftp 服务相比 ftp 有更好的安全性(非明文帐号密码传输)和方便的权限管理(限制用户的活动目录)。
实现目的:
1、设置 sftp 帐号,使用户只能 sftp 操作文件, 而不能 ssh 到服务器;
2、限定用户的活动目录,使用户只能在指定的目录下活动,使用 sftp 的 ChrootDirectory 配置;
查看ssh版本
ssh -V
1、添加用户组 sftp
groupadd sftp
2、创建sftp用户
useradd -g sftp -s /bin/false baksftp
-s /bin/false:不允许shell登录。
-g sftp:加入sftp组
3、设置密码
passwd baksftp
4、限定活动目录
mkdir -p /data/sftp/baksftp
5、配置Chroot目录权限
# 注意:此目录如果用于后续的 chroot 的活动目录,目录所有者必须是 root
chown root:sftp /data/sftp/baksftp
chmod 755 /data/sftp/baksftp
chroot 可能带来的问题:
因为 chroot 会将会话的根目录切换至此,所以 ssh 登录很可能会提示 /bin/bash: No such file or directory 的错误,因为此会话的路径会为 [chroot]/bin/bash
6、指定为sftp组用户的home目录
usermod -d /data/sftp/baksftp baksftp
7、修改ssh配置文件
vi /etc/ssh/sshd_config
7.1 基本的ssh远程登录配置
# 开启验证
PasswordAuthentication yes
# 禁止空密码登录
PermitEmptyPasswords no
# 开启远程登录
PermitRootLogin yes
至此可以使用 ssh 远程登录服务器了。
7.2 配置 sftp
# 修改Subsystem配置,使用系统自带的 internal-sftp 服务即可满足需求
# Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Subsystem 是说 ssh 的子模块;这里启用的即为 sftp 模块,使用系统自带的 internal-sftp 来提供此服务
配置到这即可以使用帐号ssh登录,也可以使用ftp客户端sftp登录。
如果希望用户只能使用sftp而不能ssh登录到服务器,而且要限定用户的活动目录,继续看下面的配置:
# 对登录用户的限制
Match Group sftp # 匹配sftp组
ChrootDirectory /data/sftp/%u # 限制用户在自己家目录
ForceCommand internal-sftp # 限制只能使用sftp协议登录(如果要放通ssh登录,注释即可)
AllowTcpForwarding no
X11Forwarding no
Match [User|Group] userName|groupName:
Match [User|Group] sftp 这里是对登录用户的权限限定配置 Match 会对匹配到的用户或用户组起作用且高于 ssh 的通项配置。
ChrootDirectory:
用户的可活动目录可以用 %h 标识用户家目录 %u 代表用户名,当 Match 匹配的用户登录后,会话的根目录会切换至此目录。这里要尤其注意两个问题:
1、 chroot 路径上的所有目录,所有者必须是 root,权限最大为 0755,这一点必须要注意。所以如果以非 root 用户登录时,我们需要在 chroot 下新建一个登录用户有权限操作的目录。
2、chroot 一旦设定,则相应的用户登录时会话的根目录 “/” 切换为此目录,如果你此时使用 ssh 而非 sftp 协议登录,则很有可能会被提示:/bin/bash: No such file or directory
对于此时登录的用户,会话中的根目录 “/” 已经切换为设置的 chroot 目录,除非 chroot 就是系统的 “/” 目录,否则此时的 chroot/bin 下是不会有 bash 命令的,这就类似添加用户时设定的 -s /bin/false 参数,shell 的初始命令式 /bin/false 自然就无法远程 ssh 登录了。
ForceCommand:
强制用户登录会话时使用的初始命令。如果如上配置了此项,则 Match 到的用户只能使用 sftp 协议登录,而无法使用 ssh 登录,会被提示:This service allows sftp connections only.
8、新建上传目录
新建一个目录供stp用户baksftp上传文件。
这个目录所有者为baksftp,所有组为sftp,所有者有写入权限,所有组无写入权限。
mkdir /data/sftp/baksftp/upload
chown baksftp:sftp /data/sftp/baksftp/upload
chmod 755 /data/sftp/baksftp/upload
9、重启sshd服务
# 关闭selinux
setenforce 0
# 重启sshd服务
systemctl restart sshd.service
10、登录sftp
sftp -P22 baksftp@IP
相关文章:
【Linux 操作系统配置 SFTP】
Linux 操作系统配置 SFTP sftp采用的是ssh加密隧道,安装性方面较ftp强,而且依赖的是系统自带的ssh服务,不像ftp还需要额外的进行安装基于 ssh 的 sftp 服务相比 ftp 有更好的安全性(非明文帐号密码传输)和方便的权限管…...
信贷专员简历模板
这份简历内容,以信贷专员招聘需求为背景,我们制作了1份全面、专业且具有参考价值的简历案例,大家可以灵活借鉴。 信贷专员简历在线编辑下载:百度幻主简历 求职意向 求职类型:全职 意向岗位:信贷专员 …...
Python自动化测试面试经典题
相信大家经历过许多面试都会有这样的感受:好不容易通过了 2 -3轮技术面试,但是薪资不够理想;要么被面试的测试专家虐的不要不要的。但每一次的面试也能让自己认识到不足之处,这样才有利于后续拿到理想的offer。 牛鹭学院的学子对…...
java+springboot物流管理系统设计与实现wl-ssmj+jsp
物流管理系统的开发和综合性的物流信息网站平台的建设。研究的重点是运输管理信息系统.本系统是一套基于运输作业流程的管理系统,该系统以运输任务、货品、商务三大线索设计开发。运输任务是该管理系统的核心,系统通过对运输任务中的接收、调…...
概念理论类-k8s :架构篇
转载:新手通俗易懂 k8s :架构篇 Kubernetes,读音是[kubə’netis],翻译成中文就是“库伯奈踢死”。当然了,也可以直接读它的简称:k8s。为什么把Kubernetes读作k8s,因为Kubernetes中间有8个字母…...
window10家庭版中文转专业版流程
1.确认当前为家庭中文版 2.用管理员权限打开cmd窗口 3.输入 dism /online /get-targeteditions ,查询当前支持的升级的版本 4.专业版密钥:VK7JG-NPHTM-C97JM-9MPGT-3V66T 5.changepk.exe /productkey VK7JG-NPHTM-C97JM-9MPGT-3V66T...
Chrome显示分享按钮
分享按钮不见了! Chrome://flags Chrome Refresh 2023 Disabled 左上角的标签搜索会到右上角。...
GPTS-生成一个动漫图像GPT
介绍 GPTs是ChatGPT的定制版本,用户可以通过组合指令、知识和功能来定制用于特定任务或主题的GPT。它们可以根据需要简单或复杂,解决从语言学习到技术支持等各种事情。 创建GPTs Plus和Enterprise用户可以在chat.openai.com/create上开始创建GPTs。 您可以通过在ChatGPT上的…...
在gazebo里搭建一个livox mid360 + 惯导仿真平台测试 FAST-LIO2
在gazebo里搭建一个livox mid360 惯导仿真平台测试 FAST-LIO2 前言立方体平台加入 livox mid360 激光雷达加入IMU模块调整底盘大小 并设计调用接口测试 Fast-Lio2 前言 livox mid360 在官网一直没有货,在gazebo里可以仿真该雷达形式的点云。 但是其只发布雷达的数…...
SpringMVC文件下载
<!--解决找不到“jquery-3.4.1.min.js”(静态资源访问)的问题 --> <mvc:default-servlet-handler/>方式1:如果去掉download就是查看图片 <a href"${pageContext.request.contextPath}/uploadfiles/${requestScope.filena…...
前端项目打包放到springboot项目时,访问不带index.html
当您的前端项目被打包并放到 Spring Boot 项目中时,如果想要通过访问不带 index.html 的路径来直接进入前端页面,您可以使用以下方法: 1,在 Spring Boot 项目中添加一个路由规则,将所有对特定路径的请求重定向到前端页…...
Tomcat注册为服务后,如何配置Tomcat内存大小
前提条件:tomcat已经注册为服务。 1.winR,输入regedit打开注册表 2.找到Tomcat注册表路径: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\Tomcat80603.找到jvm内存配置路径: HKEY_LOCAL_MACHINE\SOFTW…...
C语言入门实战教程——嵌入式必备教程(2023年版最全最新整理)
一、初识C语言 C语言诞生于美国的贝尔实验室,由丹尼斯里奇(Dennis MacAlistair Ritchie)以肯尼斯蓝汤普森(Kenneth Lane Thompson)设计的B语言为基础发展而来,C语言是一个功能简化的版本,它使C…...
Chatbot开发三剑客:LLAMA、LangChain和Python
聊天机器人(Chatbot)开发是一项充满挑战的复杂任务,需要综合运用多种技术和工具。在这一领域中,LLAMA、LangChain和Python的联合形成了一个强大的组合,为Chatbot的设计和实现提供了卓越支持。 首先,LLAMA是…...
【Spring之AOP底层源码解析】
文章目录 一、动态代理1.1、ProxyFactory1.2、Advice的分类1.3、Advisor的理解 二、创建代理对象的方式2.1、ProxyFactoryBean2.2、BeanNameAutoProxyCreator2.3、DefaultAdvisorAutoProxyCreator 三、Spring AOP的理解3.1、AOP中的概念3.2、Advice在Spring AOP中对应API3.3、T…...
【UCAS自然语言处理作业二】训练FFN, RNN, Attention机制的语言模型,并计算测试集上的PPL
文章目录 前言前馈神经网络数据组织Dataset网络结构训练超参设置 RNN数据组织&Dataset网络结构训练超参设置 注意力网络数据组织&Dataset网络结构Attention部分完整模型 训练部分超参设置 结果与分析训练集Loss测试集PPL 前言 本次实验主要针对前馈神经网络࿰…...
RabbitMQ消息模型之Sample
Hello World Hello World是官网给出的第一个模型,使用的交换机类型是直连direct,也是默认的交换机类型。 在上图的模型中,有以下概念: P:生产者,也就是要发送消息的程序C:消费者:消…...
安全技术与防火墙
目录 安全技术 防火墙 按保护范围划分: 按实现方式划分: 按网络协议划分. 数据包 四表五链 规则链 默认包括5种规则链 规则表 默认包括4个规则表 四表 查询 格式: 规则 面试题 NFS常见故障解决方法 安全技术 入侵检测系统 (Intrusion Detection Sy…...
Windows系统搭建Appium 2 和 Appium Inspector 环境
前言 自 2022 年 1 月 1 日起,Appium 核心团队不再维护 Appium 1.x。官方支持的平台驱动程序的所有最新版本均不兼容 Appium 1.x,需要 Appium 2 才能运行。 Appium 2是一个自动化移动应用程序的开源工具,它带来了以下重要改进: …...
计算机应用基础_错题集_OutLook操作题_操作系统应用题_电子表格---网络教育统考工作笔记005
6、(说明:考生单击窗口下方的“打开[Outlook]应用程序”启动Outlook) 按以下要求保存草稿。 收件人:test_xiao_ming@163.com...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
