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 ...
随机推荐
- node的async模块
废话不多说,直接开始 这个模块有几种方法.分别用于的不通的情况自己喜欢怎么用就怎么用 第一个方法,series 这个方法用于串行切无关联.什么意思那就是,里面的方法是一个一个执行的,每一个方法相互不 ...
- MyBatis Plus 导入IdType失败
import com.baomidou.mybatisplus.annotation.IdType; 修正Entity模板IdType引入包名到com.baomidou.mybatisplus.enu ...
- Elasticsearch及相关插件的安装
Elasticsearch及相关插件的安装 1.安装Elasticsearch并启动服务 2.安装第三方插件 2.1.Head插件 是Elasticsearch的一个集群管理工具,可以通过它来查看和搜 ...
- break statement not within loop or switch报错
break statement not within loop or switch. 注意你的循环,可能多加了个分号.for语句后面?
- luogu P4775 [NOI2018]情报中心 线段树合并 虚树 树的直径trick
LINK:情报中心 神题! 写了一下午 写到肚子疼. 调了一晚上 调到ex 用的是网上dalao的方法 跑的挺快的. 对于链的暴力 我不太会kk. 直接说正解吧: 分类讨论两种情况: 1 答案的两条链 ...
- 5.19 省选模拟赛 小B的夏令营 概率 dp 前缀和优化dp
LINK:小B的夏令营 这道题是以前从没见过的优化dp的方法 不过也在情理之中. 注意读题 千万不要像我这个sb一样 考完连题意都不知道是啥. 一个长方形 要求从上到下联通的概率. 容易发现 K天只是 ...
- Java和C语言谁是编程语言的老大?
最近,TIOBE 公布了 2020 年 7 月的编程语言排行榜. 本次排行榜的最大亮点就是:C语言击败Java,稳坐老大宝座! 这两年,编程语言排行榜榜首位置,不是C语言,就是Java. 以下为具体榜 ...
- Java并发学习(一):进程和线程
好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航 前言 俗话说得好"一人 ...
- Spring学习总结(7)-AOP
参考资料:https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#aop 1 ...
- 简单配置iOS的通用链接,迅速解决“universal link 校验不通过”问题!
对于需要使用微信支付等功能的APP来说,对接微信提供的openSDK是不可缺少的一环.随着苹果iOS 13系统版本的安全升级,为此openSDK在1.8.6版本进行了适配.1.8.6之后的openSD ...