centos sftp配置

2023-11-11

SFTP,即 SSH 文件传输协议,或者说是安全文件传输协议, 通过SSH端口加密传输。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多。SFTP的优势在于SSH软件包中包含SFTP(无需额外安装),iptables无需添加额外端口,配置方便

添加用户
在默认情况下, SFTP 使用 SSH 协议进行身份验证并建立安全连接,所以直接使用命令添加账户。

添加组
groupadd sftp
添加账户
useradd -g sftp -M -N -s /sbin/nologin user
设置密码
passwd user
更改用户 user 的密码 。
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
修改sshd_config配置文件
编辑配置文件:/etc/ssh/sshd_config
修改Subsystem sftp /usr/libexec/openssh/sftp-server
为Subsystem sftp internal-sftp
以下是对sftp组权限配置

#匹配 sftp 组的用户
Match Group sftp
#锁定的目录
ChrootDirectory /data/%u
#指定使用sftp服务使用系统自带的internal-sftp
ForceCommand internal-sftp
#如果不希望该用户能使用端口转发就加上,否则删掉

AllowTcpForwarding no
X11Forwarding no

或者对user用户权限配置

#匹配 user 用户

Match User user
#ChrootDirectory %u (%u代表变量用户名)
ChrootDirectory /data/%u
ForceCommand internal-sftp
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no

修改锁定用户目录的权限
所有者设置为了root,所有组设置为sftp

chown root:sftp /data/test

权限设置为755,所有者root有写入权限,而所有组sftp无写入权限

chmod -R 755 /data/test

目录的权限设定有两个要点:
1、由ChrootDirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root
2、由ChrootDirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限(最大权限为755)

添加可上传删除目录

mkdir /data/user/upload
chown user:sftp /data/user/upload

允许user用户有读写权限,群组外用户无写入权限

chmod 755 /data/user/upload

此时目录权限结构

drwxr-xr-x  19 root sftp      4096 9月   4 17:52 /data/user

test目录下,user用户可读不可写

drwxr-xr-x  4  user sftp      4096 9月  28 12:02 /data/user/upload

upload目录下,user用户可进行读写操作

重启sshd使配置生效

systemctl restart sshd

问题:
1.目录权限不对,会提示broken pipe
2.对于使用堡垒机登录的主机,要改成PasswordAuthentication yes,此命令不支持在match块中
3.报错ssh: connect to host 127.0.0.1 port 22: Connection refused Couldn’t read packet: Connection reset by peer 解决:从其他主机上登录时无报错

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

centos sftp配置 的相关文章

  • 如何获取与 shell 中的文件名模式匹配的所有文件的总文件大小?

    我正在尝试仅使用 shell 来计算与文件名模式匹配的所有文件 在目录树中 的总大小 以字节为单位 这是我到目前为止所拥有的 find name undo exec stat c s awk 总计 1 END 打印总计 有没有更简单的方法来
  • 使用 ioctl 在 C++ 中以编程方式添加路由

    我编写了简单的 C 函数 添加了新路线 void addRoute int fd socket PF INET SOCK DGRAM IPPROTO IP struct rtentry route memset route 0 sizeof
  • 在ubuntu中打开spyder

    我想在ubuntu中打开spyder Python IDE 通常我会在 shell 中编写 spyder 它会打开spyder IDE 现在 当我在shell中编写spyder时 它只是换行 什么也没有发生 类似于按 enter 我如何找回
  • bash 将输出重定向到文件,但结果不完整

    重定向命令输出的问题已经被问过很多次了 但是我有一个奇怪的行为 我使用的是 bash shell debian 版本 4 3 30 1 release 并尝试将输出重定向到文件 但并非所有内容都记录在文件中 我尝试运行的 bin 文件是 l
  • Python glob,操作系统,相对路径,将文件名放入列表中[重复]

    这个问题在这里已经有答案了 我正在尝试创建一个目录中所有文件的列表 其中文件名以 root 结尾 在阅读了论坛中的一些文章后 我尝试使用 glob 和 os listdir 的基本策略 但我都遇到了麻烦 首先 当我使用 import glo
  • Ruby:在 Ubuntu 上安装 rmagick

    我正在尝试在 Ubuntu 10 04 上安装 RMagick 看起来here https stackoverflow com questions 1482823 is there an easy way to install rmagic
  • 正则表达式删除块注释也删除 * 选择器

    我正在尝试使用 bash 从 css 文件中删除所有块注释 我有以下 sed 命令的正则表达式 sed r s w s w d 这可以很好地去除块注释 例如 This is a comment this is another comment
  • Ubuntu Python shebang 线不工作

    无法让 shebang 线在 Ubuntu 中为 python 脚本工作 我每次只收到命令未找到错误 test py usr bin env python print Ran which python usr bin python 在 sh
  • 如何在线程创建和退出时调用函数?

    include
  • 如何才能将 TCP 连接返回到同一端口?

    机器是 RHEL 5 3 内核 2 6 18 有时我在 netstat 中注意到我的应用程序有连接 建立了 TCP 连接本地地址 and 国外地址是一样的 其他人也报告了同样的问题 症状与链接中描述的相同 客户端连接到本地运行的服务器的端口
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • 在 docker 中重定向命令输出

    我想为我的服务器做一些简单的日志记录 它是一个在 Docker 容器中运行的小型 Flask 应用程序 这是 Dockerfile Dockerfile FROM dreen flask MAINTAINER dreen WORKDIR s
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • Tomcat Intellij Idea:远程部署

    RackSpace 云服务器 Ubuntu 12 04 Intellij Idea 11 1 2 Windows 8 Tomcat 7 0 26 JDK 6 在 Intellij Idea 上 当我尝试在远程 Tomcat 7 服务器上运行
  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • 为什么 Linux 原始套接字的 RX 环大小限制为 4GB?

    背景 我试图mmap 我的原始套接字的 RX 环形缓冲区64 bitLinux 应用程序 我的环由 4096 个块组成 每个块大小为 1MB 总共 4GB 请注意 每个 1MB 块中可以有许多帧 如果您好奇 请参阅此文档了解背景信息 htt
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • 有没有一种快速方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

    所以我需要从 jar war 文件中删除一个文件 我希望有类似 jar d myjar jar file I donot need txt 的内容 但现在我能看到从 Linux 命令行执行此操作的唯一方法 不使用 WinRAR Winzip
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h
  • 我们真的应该使用 Chef 来管理 sudoers 文件吗?

    这是我的问题 我担心如果 Chef 破坏了 sudoers 文件中的某些内容 可能是 Chef 用户错误地使用了说明书 那么服务器将完全无法访问 我讨厌我们完全失去客户的生产服务器 因为我们弄乱了 sudoers 文件并且无法再通过 ssh

随机推荐

  • pygame学习笔记

    pygame学习笔记 1 基础知识 参考 1 基础知识 1 设置死循环 持续显示窗口 import pygame import sys pygame init 初始化pygame size 320 240 设置窗口大小 w h screen
  • 数字逻辑触发器(一)

    触发器 一 定义 是一种具有记忆功能的逻辑部件 具有两个稳定的输出状态 用这两个稳定的状态来表示二值信号的0和1 在外界输入信号的激励下 触发器的输出状态会发生改变 二 触发器的种类举例 基本RS触发器 主从触发器 维持阻塞触发器 D触发器
  • 【appium报错】Original error:Could not proxy command to remote server. Original error:socket hang up

    博客链接1 系统自带的应用kill掉appium相关的进程 博客链接2 卸载并重装appium相关安装包 如果上面的方法仍不能解决问题 暴力解决 卸载设备上的appium setting 等appium安装的app 卸载自动化启动的app
  • UncaughtExceptionHandler 获取线程运行时异常

    我们知道线程执行体的方法接口定义为 public void run 因此线程在执行单元中是不允许抛出checked异常的 且线程之间是相对独立的 他们运行在自己的上下文当中 派生它的线程无法直接感知到它在运行时出现的异常信息 为了解决这个问
  • P2084 进制转换

    题目背景 无 题目描述 今天小明学会了进制转换 比如 10101 2 那么它的十进制表示的式子就是 1 2 4 0 2 3 1 2 2 0 2 1 1 2 0 那么请你编程实现 将一个M进制的数N转换成十进制表示的式子 注意 当系数为0时
  • vector 删除元素的几种方法

    vector 删除元素的几种方法 1 利用成员函数pop back 可以删除最后一个元素 2 利用成员函数erase 可以删除由一个iterator指出的元素 3 通过STL中的算法库函数remove 删除指定的元素 与list容器自带的成
  • 鱼眼相机标定

    分享一个最近在复习的一个鱼眼相机标定 这个大佬的链接 因为课题相关 先视觉2D检测再通过标定形成视锥然后再点云目标检测 所以先埋一个坑 刚好2D检测这块做的差不多 不过是Python版本哈 后续肯定要用C 先上一个大佬的鱼眼内参去畸变的链接
  • MavenFor this reason, future Maven versions might no longer support building such malformed projects

    使用IDEA MAVEN clean时提示如下错误 Maven For this reason future Maven versions might no longer support building such malformed pr
  • 查字典(c++)

    思路 判断insert和find insert放入string set find就用count 过程 1 判断insert和find 2 放入set中 3 判断结果 代码 include
  • 清除浮动之双伪元素清除浮动

  • 结构体指针

    结构体指针 当一个指针变量用来指向一个结构体变量时 1 结构体指针变量的值是所指向的结构体变量的起始地址 2 通过结构体指针可以访问结构体变量 定义形式 结构体名 结构体指针变量 也可在定义结构体时 同时定义这个结构体变量 注 1 结构体指
  • 实现从一个类中的实体对象获取所有属性值注入到另一个不同类的实体对象的对应属性中

    背景 由于dao层的可视化对象 bean 跟service层以及controller层的bean对象是分开的 也就是同一业务流水线中 在controller层是跟界面或者接口的交互bean 而到了操作数据库层则用的匹配数据库表的实体bean
  • python wechatsougou_使用Python的requests库模拟登陆微信搜狗,爬取100X10篇微信文章并保存到MySQL...

    自学的python和爬虫技术 使用到Redis MySQL数据库 request请求模块 re Xpath解析模块 dumps loads序列化和反序列化 还可以配合代理池使用 爬取的是https weixin sogou com 网站只能
  • RPM打包原理、示例、详解

    RPM Redhat Package Manager 是用于Redhat CentOS Fedora等Linux 分发版 distribution 的常见的软件包管理器 因为它允许分发已编译的软件 所以用户只用一个命令就可以安装软件 看到这
  • BI数据系统的设计流程

    BI大数据产品 数据管理平台可以通过报表或者BI模块来搭建 在专栏 帆软数据应用研究院 里有关于企业数据管理和BI报表平台建设的案例 站在项目实施的角度 可以从技术和业务两个层面来考虑 前期进行需求调研 罗列了一张建设思路图 技术上需要考虑
  • 量化投资学习-30:股性与人性,从傅里叶变换谈谈股市大V的操作风格的观察

    1 名家的操作风格的差异 2 方波的傅里叶变换 徐小明 1次基频率 冯矿伟 3次谐波 东风红 5 7次谐波
  • 把多层次的 XML 文档解析为 TreeView 显示

    XML 文档是一个有多层树形节点的文档 因为节点数不确定 所以要跟踪每个节点 需要用到递归 肉眼阅读 XML 比较累 需要去对付一堆的尖括号 用 Delphi 程序把它显示为一个 TreeView 的树结构 比较容易用眼睛去看 以下是我的代
  • 对比学习MocoV1

    对比学习 希望模型能分辨哪些图片类似 哪些图片不类似 即类似的图片特征空间拉近 不类似的拉远 可以设计不同的代理任务提供监督信号 代理任务例子 个体判别 Xi经过两种Ti变成两张不一样的照片 为正样本 其他都是负样本 损失 NCE loss
  • 项目8—八位数码管动态显示(包含程序化简)

    利用74HC573芯片 74HC573的八个锁存器都是透明的D型锁存器 当使能 G 为高时 Q输出将随数据 D 输入而变 当使能为低时 输出将锁存在已建立的数据电平上 输出控制不影响锁存器的内部工作 即老数据可以保持 甚至当输出被关闭时 新
  • centos sftp配置

    SFTP 即 SSH 文件传输协议 或者说是安全文件传输协议 通过SSH端口加密传输 但是 由于这种传输方式使用了加密 解密技术 所以传输效率比普通的FTP要低得多 SFTP的优势在于SSH软件包中包含SFTP 无需额外安装 iptable