【日常积累】Linux下sftp搭建
概述
SFTP是Secure File Transfer Protocol的缩写,是安全文件传送协议。可以为传输文件提供一种安全的加密方法。跟ftp几乎语法功能一样。 SFTP是SSH的一部分,是一种传输档案至Blogger伺服器的安全方式。它本身没有单独的守护进程,必须使用sshd守护进程来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以使用SFTP是十分安全的。但由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多。在对网络安全性要求更高时,代替FTP使用。
在安装使用sftp之前,我们先对sftp和ftp做一个简单的对比:
SFTP(Secure File Transfer Protocol)和FTP(File Transfer Protocol)都是用来进行文件传输的协议,但它们有以下几个主要区别:
-
连接方式不同:FTP 使用 TCP 端口 21 上的控制连接建立连接。而 SFTP 是在客户端和服务器之间通过 SSH 协议 (TCP 端口 22) 建立的安全连接来传输文件。
-
安全性不同:SFTP 使用加密传输认证信息和传输的数据,所以使用 SFTP 相对于 FTP 是非常安全。
-
传输效率不同:SFTP 这种传输方式使用了加密解密技术,所以传输效率比普通的 FTP 要低得多。
-
使用协议不同:FTP 使用 TCP / IP 协议。而SFTP 是 SSH 协议的一部分,它是一种远程登录信息。这也说明FTP的通用性更好。
-
功能差别:SFTP比FTP功能更加强大,支持对文件进行加密、压缩、校验等处理。SFTP还支持文件和目录的远程复制、移动和删除等高级功能,而FTP通常只能进行基本的文件传输和管理。
安装
默认情况下,ssh服务已经安装。所以sftp相当于也安装了,只需要修改配置即可。
服务器规划
| 角色 | IP地址 |
|---|---|
| sftp服务端 | 192.168.2.140 |
| sftp客户端 | 192.168.2.141 |
创建登录sftp的用户信息
创建sftp登录使用的用户,如果不特定指定组名 默认和用户名一样,家目录默认问/home/用户名。后面也可以创建其他目录并设置相应的用户组信息也可以正常访问。
#添加组,后面认证使用,不指定组名时默认组和用户名一样
[root@k8s-m1 ~]# groupadd sftp
[root@k8s-m1 ~]# useradd -g sftp sftp
[root@k8s-m1 ~]# passwd sftp
Changing password for user sftp.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
新指定目录
[root@k8s-m1 ~]# mkdir -p /mnt/data/sftp
[root@k8s-m1 ~]# chown root:root /mnt/data/
[root@k8s-m1 ~]# chmod -R 755 /mnt/data/
[root@k8s-m1 ~]# chown sftp:sftp /mnt/data/sftp/
[root@k8s-m1 ~]# ll -d /mnt/data/
drwxr-xr-x 3 root root 18 Aug 25 15:34 /mnt/data/
[root@k8s-m1 ~]# ll -d /mnt/data/sftp/
drwxr-xr-x 2 sftp sftp 6 Aug 25 15:34 /mnt/data/sftp/
[root@k8s-m1 ~]#
修改ssh的相关配置
#在配置文件最后添加如下配置,注意要先注释掉下面Subsystem这一行
[root@k8s-m1 ~]# vim /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server #需要注销
Subsystem sftp internal-sftp
ChallengeResponseAuthentication yes
Protocol 2
##配置SFTP
Match Group sftp #使用用户组为sftp
X11Forwarding no
ChrootDirectory /mnt/data/ #指定sftp访问的目录
ForceCommand internal-sftp
AllowTcpForwarding no
#重启
[root@k8s-m1 ~]# systemctl restart sshd
免密登录配置
上面新创建的用户现在还可以使用ssh登录。后面可以通过修改/etc/passwd来禁止ssh登录。
以下操作在另一台要免密登录sftp服务器的服务器上操作。
[root@k8s-m2 ~]# ssh-keygen -t rsa
[root@k8s-m2 ~]# ssh-copy-id sftp@192.168.2.140
# 免密登录设置好后,sftp和ssh都能正常登录
[root@k8s-m2 ~]# ssh sftp@192.168.2.140
Last login: Fri Aug 25 15:30:51 2023 from 192.168.2.141[root@k8s-m2 ~]# sftp sftp@192.168.2.140
Connected to 192.168.2.140.
sftp> pwd
Remote working directory: /
sftp>
#此次用pwd显示是/ 目录,,其实此/目录和Linux下的/目录不一样,创建一个文件或者用cd命令都能检查出来。证明了ChrootDirectory 配置是有效的。
sftp> ls
sftp
sftp> cd sftp/
sftp**加粗样式**> lcd /root/
sftp> put zookeeper-3.4.12.tar.gz .
Uploading zookeeper-3.4.12.tar.gz to /sftp/./zookeeper-3.4.12.tar.gz
zookeeper-3.4.12.tar.gz 100% 35MB 78.6MB/s 00:00
sftp> ls
zookeeper-3.4.12.tar.gz
sftp>
#能正常上传本地文件
sftp> get zookeeper-3.4.12.tar.gz
Fetching /sftp/zookeeper-3.4.12.tar.gz to zookeeper-3.4.12.tar.gz
/sftp/zookeeper-3.4.12.tar.gz 100% 35MB 78.8MB/s 00:00
sftp>
取消使用sftp账号进行ssh登录
直接在192.168.2.140 sftp服务端操作
修改/etc/passwd中sftp账号的相关信息为nologin
[root@k8s-m1 ~]# vim /etc/passwd
sftp:x:1007:1008::/home/sftp:/bin/nologin
客户端测试
[root@k8s-m2 ~]# ssh sftp@192.168.2.140
This service allows sftp connections only.
Connection to 192.168.2.140 closed.
[root@k8s-m2 ~]#
更多关于Linux的知识请前往博客主页查看,编写过程中可能由于能力有限难免出现问题,敬请指出,谢谢。
相关文章:
【日常积累】Linux下sftp搭建
概述 SFTP是Secure File Transfer Protocol的缩写,是安全文件传送协议。可以为传输文件提供一种安全的加密方法。跟ftp几乎语法功能一样。 SFTP是SSH的一部分,是一种传输档案至Blogger伺服器的安全方式。它本身没有单独的守护进程,必须使用s…...
【深入浅出C#】章节 9: C#高级主题:多线程编程和并发处理
多线程编程和并发处理的重要性和背景 在计算机科学领域,多线程编程和并发处理是一种关键技术,旨在充分利用现代计算机系统中的多核处理器和多任务能力。随着计算机硬件的发展,单一的中央处理单元(CPU)已经不再是主流&a…...
Windows Server服务器安全加固基线配置
一、账户管理、认证授权 一、账户 1、管理缺省账户 安全基线项说明:对于管理员账号,要求更改缺省账户名称;禁用Guest(来宾)账户。 操作步骤:进入控制面板-->管理工具-->计算机管理,在系统工具-->本地用户和组…...
基于NXP i.MX 6ULL核心板的物联网模块开发案例(4)
目录 5 4G模块测试 5.1 网络功能测试 5.2 短信功能测试 5.3 通话功能测试 5.4 GPS定位功能测试 5.5 程序编译 前言 本文主要介绍基于创龙科技TLIMX6U-EVM评估板的物联网模块开发案例,适用开发环境: Windows开发环境:Windows 7 64bit、Windows 10 64bit 虚拟机:VMware15.…...
英语——强调
强调句是英语中常用的一个重点句型,其基本结构是:It+be+被强调部分+that+句子其余部分。 第一节 强调句的基本用法 一、被强调的句子成分 在强调句型中,能够被强调的句子成分通常为主语、宾语、状语等,不能用来强调谓语动词、表语、补语、让步状语、条件状语等。当被强调…...
全流程R语言Meta分析核心技术教程
详情点击链接:全流程R语言Meta分析核心技术教程 一,Meta分析的选题与检索 1、Meta分析的选题与文献检索 1)什么是Meta分析? 2)Meta分析的选题策略 3)精确检索策略,如何检索全、检索准 4)文献的管理与清洗,如何制定文…...
【C++精华铺】9.STL string
目录 1. string类的优势 2. string类的常用接口 2.1 常用构造 1. 空串构造:string(); 2. C串构造:string(const char* s); 3. 拷贝构造:string(const string& str); 4. 字符填充构造:string(size_t n, char c); 5. 迭代…...
【PACS】医学影像管理系统源码带三维重建后处理技术
PACS系统,意为影像归档和通信系统。它是应用在医院影像科室的系统,主要的任务就是把日常产生的各种医学影像(包括核磁,CT,超声,各种X光机,各种红外仪、显微仪等设备产生的图像)通过各…...
从0开始学go 第一天
今天是开始学go的第x天,前些日子看了看语言,今天找一个web开发来跟着学,记录一下遇到的问题,方便以后复习查阅。 视频看的是https://www.bilibili.com/video/BV1gJ411p7xC?p3&vd_sourceab5bdbd04f4142027c66d604d5285204 视…...
Spring Cloud Nacos详解
目录 1、Spring Cloud Nacos详细介绍2、Spring Cloud Nacos具体案列 Spring Cloud Nacos 是一个由阿里巴巴集团开发的开源分布式系统服务发现、配置管理和服务管理的平台。Nacos 支持多种服务发现方式,包括 DNS 方式、HTTP 和 RPC 方式,同时提供了灵活的…...
2023谷歌开发者大会直播大纲「初稿」
听人劝、吃饱饭,奉劝各位小伙伴,不要订阅该文所属专栏。 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 跨域学习者,从事过全栈研发、产品经理等工作,现任研发部门 CTO 。荣誉:2022年度博客之星Top4、博客专家认证、全栈领域优质创作者、新星计划导师,“星荐官共赢计…...
react import 引用失效 node_modules/@types/react/index.d.ts not a module.ts
问题描述 react ts的项目,正常使用vs code打开, 先运行 npm install 安装依赖过后 结果所有的react引用依旧标红,如下图所示: 点击红线 show problem(查看问题),提示node_modules/types/react/index.d.ts not a mod…...
Unity中的Unistorm3.0天气系统笔记
Unistorm是Unity中的一个天气系统,它功能强大,效果优美。本文所述UniStorm为3.0版本,仅用于学习之用。 一、如何设置【白天】、【黑夜】和【天气类型】? 在Running模式下,按下Esc按键,会【弹出】或者【隐…...
VMVareC++开发环境快速配置
OVERVIEW VMVareC开发环境快速配置ipgitvimgithubzshgcc&g&cmakesshifconfigmysqlnginxredisgdb VMVareC开发环境快速配置 VMVareC开发环境快速配置,为了省时间快速整理出文档方便以后快速配置, 按照这个流程直接可以快速得到一个舒适的C/C开发…...
数据库为什么使用B+树而不是B树做索引
🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师…...
java必知必会--面向对象及相关基础知识
java必知必会–面向对象及相关基础知识 一、java面向对象: 1、什么是面向对象以及三大特性 ①我们把数据和数据之间的相互操作关系放到一起总结为–对象。所有的操作都是基于对象来进行的。 ②面向对象的的特征:封装、继承、多态 ③封装:我…...
【推荐】Spring与Mybatis集成
目录 1.概述 2.集成 2.1代码演示: 3.整合 3.1概述 3.2 进行整合分页 接着上两篇,我已经写了Mybatis动态之灵活使用,mybatis的分页和特殊字符的使用方式接下来把它们集成起来,是如何的呢👇👇…...
中科驭数受邀在招商银行金融科技论坛作异构计算主题分享 解码金融科技先进算力构建之路
8月25日,2023招银浦江金融科技论坛正式召开。中科驭数高级副总裁张宇受邀在资管科技分论坛发表《金融行业先进异构算力底座构建之路》的主题演讲,与参会嘉宾分享了当前计算系统的发展趋势以及如何通过异构算力构建IT技术底座来推动金融科技的创新。 ▲ 中…...
Maven打包方式pom和jar和war的区别
Maven 项目可以使用不同的打包方式,如 POM、JAR 和 WAR,这些方式决定了项目构建后生成的产物类型和用途。下面是这些打包方式的区别: 1. **POM (Project Object Model):** POM 打包方式实际上不会生成一个可执行的构建产物。它是…...
【51单片机】EEPROM-IIC实验(按键控制数码管)
目录 🎁I2C总线 编辑 🎁代码 🏳️🌈main.c 🏳️🌈i2.c 🎆代码分析 🎁I2C总线 I2C总线是Philips公司在八十年代初推出的一种串行、半双工的总线,主要用于近距…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
