linux技术专题系列「必备基础知识」一起探索和实践sftp配置之密钥方式登录

author author     2023-01-24     417

关键词:

【Linux技术专题系列】「必备基础知识」一起探索和实践sftp配置之密钥方式登录_配置文件

FTP服务-vsftp协议实现

我们常用的是FTP协议,主要是通过VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。

SFTP服务-ssh协议实现

由于vsftp采用明文传输,用户名密码可通过抓包得到,为了安全性,需使用sftp,锁定目录且不允许sftp用户登到服务器。由于sftp使用的是ssh协议,需保证用户只能使用sftp,不能ssh到机器进行操作,且使用密钥登陆、不是22端口。

  1. 创建sftp服务用户组,创建sftp服务根目录,通过groupadd指令进行创建对应的sftp服务用户组。
groupadd sftp
  1. 常见对应的sftp服务器的目录地址。
mkdir /data/sftp
  1. 此目录及上级目录的所有者必须为root,权限不高于755,此目录的组最好设定为sftp
chown -R root:sftp /data/sftp
chmod -R 0755 /data/sftp
  1. 备份sshd_config配置文件
cp /etc/ssh/sshd_config_bk
  1. 修改sshd配置文件

保证原来22端口可以

sed -i s@#Port 22@Port 22@ /etc/ssh/sshd_config 
vi /etc/ssh/sshd_config

注释掉/etc/ssh/sshd_config文件中的此行代码:

Subsystem  sftp  /usr/libexec/openssh/sftp-server

添加如下代码:

Port 2222
Subsystem sftp internal-sftp -l INFO -f AUTH
Match Group sftp
ChrootDirectory /data/sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp -l INFO -f AUTH

凡是在用户组sftp里的用户,都可以使用sftp服务;使用sftp服务连接上之后,可访问目录为/data/sftp/username

案例说明

  • test是一个sftp组的用户,它通过sftp连接服务器上之后,只能看到/data/sftp/test目录下的内容
  • test2也是一个sftp组的用户,它通过sftp连接服务器之后,只能看到/data/sftp/test2目录下的内容
  1. 创建sftp用户,此例将创建一个名称为test的sftp帐号

#创建test sftp家目录:test目录的所有者必须是root,组最好设定为sftp,权限不高于755

mkdir /data/sftp/test
chmod 0755 /data/sftp/test
chown root:sftp /data/sftp/test
useradd -g sftp -s /sbin/nologin test #添加用户,参数-s /sbin/nologin禁止用户通过命令行登录
  1. 创建test用户密钥对:
mkdir /home/test/.ssh
ssh-keygen -t rsa
cp /root/.ssh/id_rsa.pub /home/test/.ssh/authorized_keys
chown -R test.sftp /home/test

在test目录下创建一个可以写的upload目录

mkdir /data/sftp/test/upload
chown -R test:sftp /data/sftp/test/upload

注:sftp服务的根目录的所有者必须是root,权限不能超过755(上级目录也必须遵循此规则),sftp的用户目录所有者也必须是root,且最高权限不能超过755。

  1. 测试sftp
service sshd restart

1w字长文:k8singress原理和实操(代码片段)

...发高薪的必备技能。SVC、Ingress原理和实操,是云原生的基础知识。这里尼恩给大家调优,做一下Ingress的系统化、体系化的梳理。在面试之前,也可以复习一下,使得大家可以充分展示一下大家雄厚的“技术肌肉”,让面试官爱... 查看详情

jvm技术专题「原理专题」让我们一起探索一下netty(java)底层的“零拷贝zero-copy”技术(上)(代码片段)

Netty的零拷贝Netty中的零拷贝与我们传统理解的零拷贝不太一样。传统的零拷贝指的是数据传输过程中,不需要CPU进行数据的拷贝。主要是数据在用户空间与内核中间之间的拷贝。传统意义的零拷贝Zero-Copydescribescomputeroperations... 查看详情

springboot技术专题「实战开发系列」带你一同探索shiro整合jwt授权和认证实战开发(代码片段)

本章介绍一下常用的认证框架Shiro结合springboot以及集合jwt快速带您开发完成一个认证框架机制。Maven配置依赖<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.3.2 查看详情

springboot技术专题「开发实战系列」一起搭建属于自己的springbootadmin的技术要素

SpringBootAdmin的介绍说明SpringBootAdmin是开源社区孵化的项目,用于对SpringBoot应用的管理和监控。SpringBootAdmin分为服务端(spring-boot-admin-server)和客户端(spring-boot-admin-client),服务端和客户端之间采用http通讯方式实现数据交互;单体项... 查看详情

2.18-2.24博客精彩回顾

...15.​​flutter系列之:在flutter中使用导航Navigator​​​二、专题推荐1.​​后端开发专题系列​​2.​​前端开发专题系列​​3.​​移动开发专题系列​​4.​​数据库专题系列​​5.​​人工智能专题系列​​6.​​服务器专题系... 查看详情

springboot技术专题「开发实战系列」一起搭建属于自己的springbootadmin的技术要素(代码片段)

SpringBootAdmin的介绍说明SpringBootAdmin是开源社区孵化的项目,用于对SpringBoot应用的管理和监控。SpringBootAdmin分为服务端(spring-boot-admin-server)和客户端(spring-boot-admin-client),服务端和客户端之间采用http通讯方式实现数据交互&#... 查看详情

ci/cd技术专题「jenkins实战系列」全流程介绍jenkins环境搭建+基础部署配置(windows->linux)(代码片段)

背景在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试;前后端分离后,经常会修改接口,然后重... 查看详情

1w字长文:蓝绿发布金丝雀发布滚动发布a/b测试原理和实操(代码片段)

...必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪酬猛涨!加尼恩免费领免费赠送经典图书:《Java高并发核心编程(卷1)加强版》面试必备+大厂必备+涨薪... 查看详情

java技术专题「string技术系列」带你一起探究字符串不可变的特性(代码片段)

前提介绍在Java中String类的使用的频率可谓相当高。它是Java语言中的核心类,在java.lang包下,主要用于字符串的比较、查找、拼接等等操作。如果要深入理解一个类,最好的方法就是看看源码:什么是字符串字符... 查看详情

1000w用户1wqps高并发签到系统的架构和实操(代码片段)

...必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪酬猛涨!加尼恩免费领免费赠送经典图书:《Java高并发核心编程(卷1)加强版》面试必备+大厂必备+涨薪... 查看详情

3w字吃透:微服务sentinel限流底层原理和实操(代码片段)

...必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪酬猛涨!加尼恩免费领免费赠送经典图书:《Java高并发核心编程(卷1)加强版》面试必备+大厂必备+涨薪... 查看详情

k8s学习圣经6:资源控制+springcloud动态扩容原理和实操(代码片段)

...必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪酬猛涨!加尼恩免费领免费赠送经典图书:《Java高并发核心编程(卷1)加强版》面试必备+大厂必备+涨薪... 查看详情

thread专题- 组合对象

...备(系列)​​中虽然前面介绍了一些线程安全与同步的基础知识,但我们不希望为了获得线程安全而去分析每次内存访问,而希望组合成更大的组件或程序安全的组件对外提供安全性。一、设计线程安全的类设计线程安全类的... 查看详情

ci/cd技术专题「jenkins实战系列」jenkins实现自动化部署+自动化合并其他分支(代码片段)

...的安装以及部署到Linux环境的案例和基本配置,【CI/CD技术专题】「Jenkins实战系列」(1)全流程介绍Jenkins环境搭建+基础部署配置(Windows->Linux),接下来,会针对于相关的J 查看详情

万字长文超硬核详细学习系列——深入浅出linux基础篇的知识点,值得你收藏学习必备(代码片段)

茫茫人海千千万万,感谢这一秒你看到这里。希望我的文章对你的有所帮助!愿你在未来的日子,保持热爱,奔赴山海!Linux基础篇目录1.Linux系统介绍1.1linux的概述1.2linux的优势1.3linux的分类1.4常见的发行版linux... 查看详情

jvm技术专题深入研究jvm挖掘知识体系系列「补充篇」(代码片段)

JVM执行引擎的效率提升JVM是如何在保证可移植性的前提下提供高执行效率的?Java跨平台性Java程序最为常见的执行方式,是预先编译为一种名为Java字节码的中间代码格式。这种代码格式无法直接运行在CPU之上,而是需... 查看详情

redis实战专题「性能监控系列」全方位探索redis的性能监控以及优化指南

Redis基本简介Redis是一个开源(BSD许可)、内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁... 查看详情

程序员不能错过的技术知识图谱,进阶路上必备神器。

本文转载自李亚鹏本文是鹏哥多年来积累和收集的技术知识技能图谱,有的是鹏哥原创总结的最佳实践,有的是小伙伴们的分享。其实,每个秘籍图谱里面的内容都是互联网高并发架构师应该了解和掌握的知识。鹏哥索性就把这... 查看详情