当前位置: 首页 > news >正文

【日常积累】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的分页和特殊字符的使用方式接下来把它们集成起来,是如何的呢👇👇&#x1…...

中科驭数受邀在招商银行金融科技论坛作异构计算主题分享 解码金融科技先进算力构建之路

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公司在八十年代初推出的一种串行、半双工的总线,主要用于近距…...

地热模拟实战:当岩石遇上高温水流

Comsol地热开采-热流固耦合(两个模型,均质和裂隙岩体)附赠参考文献。地热开采就像给地球做"针灸",要在不透水的花岗岩里造出人工热储层。最近用COMSOL折腾了两个典型模型:人畜无害的均质岩体和自带裂隙的破碎…...

手把手玩转Bagging分类——用Matlab实现工业故障检测

Bagging分类 Matlab代码 可用于故障检测等 基于集成算法Bagging的数据分类预测(可以更换为单、多变量时序预测/回归,前私我),Matlab代码,可直接运行,适合小白新手 [憨笑]程序已经调试好,无需更改代码替换数据集即可运行…...

Qwen3-ASR-1.7B与QT集成:开发跨平台语音识别桌面应用

Qwen3-ASR-1.7B与QT集成:开发跨平台语音识别桌面应用 1. 引言 想象一下,你正在开发一个需要语音输入功能的桌面应用。传统的语音识别方案要么需要联网调用云端API,要么识别准确率不够理想。现在,有了Qwen3-ASR-1.7B这个强大的开…...

构建边缘AI小语言模型

大型语言模型(LLM)在任何场合、任何设备上都可访问。 但拥有数千亿参数的LLM对于低延迟应用来说过于昂贵,而普通的SLM在保真度和一致性响应方面往往表现不佳。 为应对这一挑战,我将调优一个紧凑的Llama 3.2–3B模型,…...

MediaPipe实战:5分钟搞定人体姿态检测与3D坐标实时输出(附完整代码)

MediaPipe实战:5分钟搭建高精度人体姿态检测系统 当你第一次看到电影里的动作捕捉技术时,是否好奇过那些流畅的虚拟角色动画是如何实现的?如今,借助MediaPipe这个强大的开源框架,普通开发者也能在个人电脑上构建专业级…...

AI改写工具爱毕业aibye提供五个技巧,助力30%重复率的论文快速达标

嘿,大家好!我是AI菌。今天咱们来聊聊一个让无数学生头疼的问题:论文重复率飙到30%以上怎么办?别慌,我这就分享5个实用降重技巧,帮你一次搞定,轻松压到合格线以下。这些方法都是我亲身试验过的&a…...

MongoDB时间戳转换实战:从数字到标准时间格式的完整指南

1. MongoDB时间戳转换的核心概念 第一次接触MongoDB时间戳转换时,我也被各种时间格式搞得晕头转向。简单来说,MongoDB中的时间戳主要有三种存储形式:数字类型(如1655448286502)、字符串类型(如"165544…...

OpenClaw异常处理机制:Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF任务失败自动恢复

OpenClaw异常处理机制:Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF任务失败自动恢复 1. 为什么需要异常处理机制 上周我让OpenClaw执行一个简单的数据整理任务——把散落在十几个Markdown文件里的技术笔记按主题分类归档。本以为是个轻量级操作&#xf…...

在Windows上用C++部署YOLO11模型:从PyTorch训练到QT桌面应用的全流程避坑指南

工业级YOLO11模型C部署实战:从PyTorch到QT6.9的工程化落地指南 当Python训练的AI模型需要真正投入生产线时,C部署往往成为必经之路。去年在为某电子元件制造商部署电容极性检测系统时,我深刻体会到从Jupyter Notebook到稳定运行的Windows桌面…...

GMSL GUI实战:利用EOM眼图与Link Margin优化高速链路设计

1. GMSL高速链路设计的核心挑战 在车载摄像头、工业视觉等需要长距离传输高清视频的场景中,GMSL(千兆多媒体串行链路)技术凭借其高带宽和抗干扰能力成为首选方案。但当我第一次尝试设计6Gbps的GMSL3链路时,信号完整性问题就像个隐…...