linux 安装sftp
1、定义sftp的数据目录
mkdir -p /data/sftp
2、将目录归到root用户,否则无法chroot
chown root. -R /data/sftp/或者chown root:root -R /data/sftp/
3、权限设置为755,不能超过755,保证普通用户可以进入
chmod 755 -R /data/sftp/
4、添加sftp服务组,sftp服务可以设置匹配组或单个用户来设置,如果是单个用户可以忽略
groupadd sftp
5、添加用户
useradd -d /data/sftp/clptsftp -m g sftp -s /sbin/nologin clptsftp
验证用户
id clptsftp
添加密码 #添加密码。测试环境从简,生产不建议此密码,可以通过网页 https://suijimimashengcheng.51240.com/ 或mkpasswd命令生成密码(需要安装expect软件包)
echo "123456" | passwd --stdin clptsftp
或者通过passwd clptsftp
sftp组的用户的home目录统一指定到/data/sftp下,按用户名区分,这里先新建一下clptsftp
下面三行的操作可通过添加用户的时候指定-d来指定,如上面第五步,如果第五步使用useradd g sftp -s /sbin/nogin clptsftp命令的话,就要使用下面三行
mkdir -p /data/sftp/clptsftp
使用usermod 命令,更改用户的home目录,且以用户名区分,
usermod -d /data/sftp/clptsftp clptsftp
cd /data/sftp
ls
chown root:sftp clptsftp或者这里可以使用root:root,需要验证一下
chmod 755 clptsftp
cd clptsftp
mkdir resourceupload
chown clptsftp:sftp resourceupload/
修改sshd服务配置文件,以组的方式管理sftp用户权限
vi /etc/ssh/sshd_config
注释掉:Subsystem sftp /usr/libexec/openssh/sftp-server行

------------------
Subsystem sftp internal-sftp #使用sftp服务使用系统自带的internal-sftp
Match Group sftp #匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割
ChrootDirectory /data/sftp/%u #用chroot将用户的根目录指定到/data/sftp/%u,%u代表用户名,这样用户就只能在/data/sftp/%u下活动
ForceCommand internal-sftp #强制执行内部sftp,并忽略任何~/.ssh/rc文件中的命令
AllowTcpForwarding no #不允许转发TCP协议,默认是yes,如果用户可以shell访问则建议为yes
X11Forwarding no #是否允许进行 X11 转发。默认值是"no",设为"yes"表示允许。如果允许X11转发并且sshd(8)代理的显示区被配置为在含有通配符的地址(X11UseLocalhost)上监听。那么将可能有额外的信息被泄漏。由于使用X11转发的可能带来的风险,此指令默认值为"no"。需要注意的是,禁止X11转发并不能禁止用户转发X11通信,因为用户可以安装他们自己的转发器。如果启用了 UseLogin ,那么X11转发将被自动禁止。
在文件最后面添加如下几行内容,然后保存。
Subsystem sftp internal-sftp
Match Group sftp
匹配sftp组的用户,如果有多个组用逗号分割 也可以使用“Match User mysftp”匹配用户,多个用户之间也是用逗号分割
ChrootDirectory /data/sftp/%u
用chroot将用户的根目录指定到/data/ftp/%u,%u代表用户名,%h表示用户根目录
ForceCommand internal-sftp
指定sftp命令
AllowTcpForwarding no
X11Forwarding no
禁止用户使用端口转发 建立用户和组放
------------------
5、设定Chroot目录权限
chown root:sftp /data/sftp/clptsftp
chmod 755 /data/sftp/clptsftp
6、建立SFTP用户登入后可写入的目录
照上面设置后,在重启sshd服务后,用户mysftp已经可以登录。但使用chroot指定根目录后,根应该是无法写入的,所以要新建一个目录供mysftp上传文件。这个目录所有者为mysftp,所有组为sftp,所有者有写入权限,而所有组无写入权限。命令如下:
mkdir /data/sftp/clptsftp/resourcesupload
chown clptsftp:sftp /data/sftp/clptsftp/resourcesupload
chmod 755 /data/sftp/clptsftp/resourcesupload
7、修改/etc/selinux/config
文本编辑器打开/etc/selinux/config
vi /etc/selinux/config
将文件中的SELINUX=enforcing 修改为 SELINUX=disabled ,然后保存。
在输入命令
setenforce 0
8、重启sshd服务
输入命令重启服务。
service sshd restart
9、验证sftp环境
用mysftp用户名登录,yes确定,回车输入密码。
sftp mysftp@127.0.0.1
显示 sftp> 则sftp搭建成功。
10、使用FileZilla FTP Client连接SFTP服务器
输入主机IP地址、用户名、密码、端口连接SFTP服务器,端口默认为22。
linux 安装sftp的更多相关文章
- linux 安装 sftp
1,sftp:登陆命令 Xshell:\> sftp root@192.168.159.128 Connecting to 192.168.159.128:22... Connection es ...
- Linux 安装JDK(jdk-8u121-linux-x64.tar.gz)
Linux 安装JDK(jdk-8u121-linux-x64.tar.gz) 一.JDK准备 1.1 文件名称 jdk-8u121-linux-x64.tar.gz 1.2 下载地址 http:// ...
- Linux安装jdk,编写helloworld程序
今天学习了Linux安装jdk,做个笔记记录一下. 第一步,确定Linux是32位的还是64位的,然后到oracle官网上下载对应版本的jdk,一般下载.tar.gz文件.查看Linux的版本的命令是 ...
- Linux 安装Zookeeper<准备>(使用Mac远程访问)
阅读本文需要安装JDK 一 Zookeeper简介 zookeeper是用java语言编写的一款为分布式应用所设计的协调服务 zookeeper是apacahe hadoop的子项目 使用zookee ...
- Linux 安装Redis<准备>(使用Mac远程访问)
阅读本文需要一定的Linux基础 一 Redis简介 redis是用c语言编写的一款开源的高性能键值对(key-value)数据库 它通过提供多种键值数据类型来适应不同场景下的存储需求 二 Redis ...
- Linux 安装FastDFS<准备>(使用Mac远程访问)
阅读本文需要一定的Linux基础 一 FastDFS简介 fastdfs是用c语言编写的一款开源分布式文件系统, fastdfs为互联网量身定制, 充分考虑了冗余备份, 负载均衡, 线性扩容等机制, ...
- Linux之sftp服务
Linux之sftp服务 一.sftp介绍转自:[1]Linux如何开启SFTP https://www.cnblogs.com/xuliangxing/p/7120205.htmlSFTP是Secu ...
- 搜狗输入法linux安装 以及 12个依赖包下载链接分享
搜狗输入法linux安装版,先安装各种依赖包,大概12个依赖,可能中途还需要其他依赖,可以效仿解决依赖问题.如图这12个文件要是手动点击下载,那也太笨点了,我们要用shell命令批量下载.命令如下:w ...
- linux安装php
接上篇:linux安装apache 一.安装php 先安装libxml2库 [root@ctxsdhy package]# yum -y install libxml2-devel 最新地址在:htt ...
随机推荐
- 第 13 篇:DRF 框架之 API 版本管理
作者:HelloGitHub-追梦人物 API 不可能一成不变,无论是新增或者删除已有 API,都会对调用它的客户端产生影响.如果对 API 的增删没有管理,随着 API 的增增减减,调用它的客户端就 ...
- ES的集群原理
文章转载自:https://www.cnblogs.com/soft2018/p/10213266.html 一.ES集群原理 查看集群健康状况:URL+ /GET _cat/health (1).E ...
- 5G UE能力-UE capability information解析(ENDC)
本文主要以EN-DC(双连接),mmw(毫米波)的接入过程中的为例,其他以此类推,整理不易,望多推荐 第一次UE能力问询 第一次能力问询主要是基站向UE问询4G和3G能力 第一次UE能力上报 第一次U ...
- python unicode和string byte
python unicode 和string那 开发过程中总是会碰到string, unicode, ASCII, 中文字符等编码的问题, 每次碰到都要现搜, 很是浪费时间, 于是这次狠下心, 一定要 ...
- MVC + EFCore 项目实战 - 数仓管理系统8 - 数据源管理下--数据源预览
上篇我们完成了数据源保存功能,并顺便看了保存后的数据源列表展示功能. 本篇我们开始开发预览功能,用户预览主要步骤: 1.点击数据源卡片预览按钮 2.查看数据源包含的表 3.点击表名,预览表中数据 ...
- 报错:invalid operands to binary - (have ‘int’ and ‘char *’)
//这个题是输入大写的一串字符,然后按A对应1...这个规律求乘积 char a[],b[]; scanf("%s",a); scanf("%s",b); in ...
- Python for循环使用 else 语句
Python for循环使用 else 语句: else:当 for 所有的语句代码块正常运行完,才会运行 else 语句. 示例: ''' for 迭代对象 in 序列: 代码块(一行语句或多行代码 ...
- Skill 脚本演示 ycCommonCenterMos.skl
https://www.cnblogs.com/yeungchie/ ycCommonCenterMos.skl 自动生成一个共质心差分对 Mos ,可以自定布局类型. 回到目录
- luogu P4775 [NOI2018]情报中心 线段树合并 虚树 树的直径trick
LINK:情报中心 神题! 写了一下午 写到肚子疼. 调了一晚上 调到ex 用的是网上dalao的方法 跑的挺快的. 对于链的暴力 我不太会kk. 直接说正解吧: 分类讨论两种情况: 1 答案的两条链 ...
- luogu P4632 [APIO2018] New Home 新家 线段树 set 二分
写了一种比较容易理解 但是常数很大的sol. 容易发现可以扫描线. 维护好序列之后发现很难查距离 考虑二分. 这里二分可以在线段树上进行 当然可能存在一些问题 如果离散化的话需要处理一些比较麻烦的细节 ...