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

SSH、FTP、SFTP相关协议详解

一、SSH

1、定义
SSH(Secure Shell)是一种网络协议,用于加密方式远程登录到另一台计算机上,并执行命令或程序。SSH由IETF的网络小组(Network Working Group)所制定,是建立在应用层基础上的安全协议。

2、特点

  • 加密性:SSH通过加密技术处理所有传输的数据,确保数据传输的安全性,有效防止远程管理过程中的信息泄露问题。
  • 认证机制:SSH支持多种认证方式,如密码认证密钥认证,增强了安全性。
  • 灵活性:SSH不仅可以用于远程登录,还可以用于执行远程命令传输文件(通过SCP或SFTP)等,同时支持端口转发X11转发等功能。

3、应用

SSH服务主要提供两个服务功能:一个是提供类似telnet远程联机服务器的服务;另一个是类似FTP服务的sftp-server,借助SSH协议来传输数据的,提供更安全的SFTP服务。所以SSH服务本身就可以提供SFTP服务。

二、FTP

1、定义
FTP(File Transfer Protocol)是一种用于在两台装有不同操作系统的机器之间传输计算机文件的协议。它属于网络协议组的应用层,是一个8位的客户端-服务器协议。工作在OSI网络模型的第七层---应用层,使用TCP传输。
FTP是基于客户--服务器(CS)模型设计的,ftp客户端发起会话,与ftp服务器建立连接。FTP会话期间要建立建立两个连接:控制连接数据连接控制连接一般使用21端口,主要用户传送命令和响应等控制信息,在整个交互过程中始终处于连接状态数据连接一般使用服务器的20端口只在每一次文件传送时打开,数据传送完成后则会关闭。当控制连接撤销时,FTP会话结束。

2、特点

  • 非加密性:FTP传输的数据是明文传输,存在安全风险,不适合传输敏感信息。
  • 灵活性:FTP支持多种文件类型传输模式(主动模式和被动模式),能操作任何类型的文件而不需要进一步处理。
  • 延时性:FTP有着较高的延时,从开始请求到第一次接收需求数据之间的时间可能会非常长,并且需要执行冗长的登录进程。
1、FTP支持的模式

Standard(PORT方式、主动模式)、Passive(PASV、被动模式)

  • 主动模式:

FTP客户端首先与服务器的TCP21端口建立控制连接,用来发送控令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器通过自己的TCP20端口连接至客户端的指定端口发送数据。

  • 被动模式:

被动模式下控制连接与主动模式是一致的不同的是控制连接建立后会发送PASV命令,服务器收到PASV命令后,打开一个临时端口并且通知客户端,客户端连接至ftp的此端口,然后ftp服务器通过这个端口传送数据。
总结:主动与被动是针对FTP服务器而言的,主动模式下,FTP服务器使用20端口主动连接客户端的指定端口。被动模式下,FTP服务器告知客户端自己要使用的端口,然后等待客户端的连接。

2、匿名FTP

一般情况下如果想与一台ftp服务器进行文件传输,需要有该服务器的授权,即使用该服务器的注册用户进行登录后,才能传输文件。而这种情况违背了互联网的开放性,互联网上的FTP服务器成千上万,不可能要求每个用户在每台FTP服务器上都拥有帐号。
  匿名FTP是这样一种机制,用户可通过它连接到远程FTP服务器上,进行文件的上传或下载,而不需要成为其注册用户。系统管理员建立一个特殊的用户帐号(匿名帐号),一般名为anonymousftp,互联网上的任何人在任何地方都可使用该用户的帐号。
  通过FTP程序连接匿名FTP服务器的方式同连接普通FTP服务器的方式类似,只是在要求提供用户帐号时必须输入anonymous或ftp,而该用户帐号的口令可以是任意的字符
当远程服务器提供匿名FTP服务时,会预先指定某些目录及文件向公众开放,允许匿名用户的存取,而系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP服务器都只允许用户下载文件而不允许用户上传文件

3、应用
FTP主要用于文件传输,包括文件的上传和下载。然而,由于其非加密性,FTP在安全性要求较高的场合逐渐被SFTP等更安全的协议所替代。

三、SFTP

1、定义
SFTP(SSH File Transfer Protocol)是一种基于SSH(安全外壳)的安全的文件传输协议。SFTP使用SSH的加密和认证机制来确保文件传输的安全性。

2、特点

  • 安全性:SFTP继承了SSH的加密认证机制,所有数据在传输过程中都被加密,有效防止了传输过程中的威胁和攻击。
  • 兼容性:SFTP的命令行接口与FTP类似,使得熟悉FTP的用户可以很容易地切换到SFTP。
  • 高效性:虽然SFTP在加密和解密过程中会增加一些计算开销,但总体来说,其传输效率仍然很高。

3、应用
SFTP广泛应用于需要安全传输文件的场景,如远程备份、网站文件更新等。

四、VSFTP

1、定义
VSFTP(Very Secure FTP)是Linux服务器上的一款使用FTP协议的软件,是Linux上使用最广泛的FTP服务端软件之一。VSFTP专注于提供安全可靠的FTP服务。

2、特点

  • 安全性:VSFTP通过配置可以实现多种安全特性,如限制用户登录限制用户访问目录等。
  • 易用性:VSFTP的配置文件相对简单易懂,方便管理员进行配置和管理。
  • 高效性:VSFTP针对FTP协议进行了优化,提高了文件传输的效率。

3、应用
VSFTP广泛应用于Linux服务器上的文件传输服务,特别是在需要提供匿名FTP服务的场合。

综上所述,SSH、FTP、SFTP、VSFTP各自具有不同的特点和应用场景。SSH和SFTP更侧重于数据传输的安全性而FTP和VSFTP则更侧重于文件传输的便捷性和高效性。在选择使用哪种协议或软件时,应根据具体的安全需求和性能要求来决定。

五、常见面试题

针对SSH、SFTP、VSFTP的常见面试题,以下是一些可能的问题及其详细回答:

SSH常见面试题
  1. SSH服务器的默认端口和配置文件是什么?
    • 默认端口:22
    • 配置文件/etc/ssh/sshd_config
    • 修改说明:编辑/etc/ssh/sshd_config文件,更改参数“Port 22”的值,然后重新启动ssh服务。
  2. 如何禁用SSH的root登录?
    • 编辑/etc/ssh/sshd_config文件,将“PermitRootLogin yes”更改为“PermitRootLogin no”,然后重新启动ssh服务。
  3. 如何只允许特定的用户通过SSH访问Linux服务器?
    • 编辑/etc/ssh/sshd_config文件,添加“AllowUsers user1 user2”参数(其中user1和user2是允许的用户名),然后重新启动ssh服务。
  4. SSH端口转发(隧道)如何设置?
    • 使用语法:
      ssh -L localport:host:hostport user@ssh_server -N
    • 参数说明:
      • -L:端口转发参数
      • localport:本地端口
      • host:具有要转发的端口的服务器
      • hostport:远程端口
      • -N:不要执行远程命令
      • user:具有访问ssh服务器权限的用户
      • ssh_server:将用于转发的ssh服务器
  5. SSH与Telnet的主要区别是什么?
    • SSH通信是加密的,而Telnet通信是明文的
    • SSH使用公钥进行身份验证,而Telnet不使用任何身份验证
    • SSH默认端口是22,Telnet默认端口是23
SFTP常见面试题
  1. SFTP是什么?它与FTP有什么区别?
    • SFTP(SSH File Transfer Protocol)是一种基于SSH协议的安全文件传输协议。
    • 主要区别:
      • 安全性:SFTP通过加密传输数据,而FTP传输的数据是明文的
      • 端口号:SFTP使用SSH的默认端口22,FTP使用默认端口21
  2. 如何建立SFTP连接?
    • 选择SFTP客户端工具(如FileZillaWinSCP等)。
    • 在客户端中输入服务器地址、端口号(默认为22)、用户名和密码。
    • 连接到服务器后,进行文件传输和管理。
  3. SFTP如何进行身份验证?
    • 可以使用用户名密码SSH密钥等多种身份验证方法。
  4. SFTP的优点有哪些?
    • 安全性高,通过加密传输数据。
    • 平台无关性,可以在不同操作系统上使用。
    • 可靠性高,具有失败重试功能。
    • 高效性,使用压缩算法和流传输提高传输效率。
VSFTP常见面试题
  1. VSFTP是什么?
    • VSFTP(Very Secure FTP Daemon)是一种在Linux系统上广泛使用的FTP服务器软件,强调安全性。
  2. 如何检测是否安装了VSFTP?
    • 在Linux系统中,可以使用包管理器命令来检测是否安装了VSFTP。
      rpm -q vsftpd或者
      apt list --installed | grep vsftpd
  3. 如何配置VSFTP以允许匿名用户上传文件?
    • 修改/etc/vsftpd/vsftpd.conf文件,确保以下选项被正确设置:
      • anonymous_enable=YES:允许匿名登录。
      • write_enable=YES:允许写操作(包括上传)。
      • anon_upload_enable=YES:允许匿名用户上传文件。
      • 设置一个匿名用户可写的目录,并指定该目录为匿名用户的根目录(如anon_root=/path/to/directory)。
    • 重启VSFTP服务以应用更改。
  4. VSFTP的日志文件在哪里?
    • VSFTP的日志文件通常位于/var/log/vsftpd.log,但具体位置可能因系统配置而异。可以通过查看/etc/vsftpd/vsftpd.conf文件中的xferlog_filexferlog_std_format参数来确定。

请注意,上述回答中的信息可能因不同的Linux发行版和VSFTP版本而有所差异。在实际操作中,请参考您所使用的系统的具体文档和指南

相关文章:

SSH、FTP、SFTP相关协议详解

一、SSH 1、定义 SSH(Secure Shell)是一种网络协议,用于加密方式远程登录到另一台计算机上,并执行命令或程序。SSH由IETF的网络小组(Network Working Group)所制定,是建立在应用层基础上的安全…...

C语言进阶——一文带你深度了解“C语言关键字”(中篇6)

本篇文章记录我学习C语言进阶知识——C语言关键字,旨在记录分享,希望我的分享能带给你不一样的收获! 目录 一、return关键字 二、const 关键字也许该被替换为 readolny (一)、 const 修饰的只读变量 (二…...

自建极简Ethercat主站-第8章 FOE基础功能实现

文章目录 第8章 FOE8.1 FOE简介8.2 FOE 数据结构8.2.1 FOE帧格式8.2.2 FOE请求8.3 数据传输流程8.3.1 读流程8.3.2 写流程8.3.3 忙操作8.3.4 代码示例第8章 FOE 源码地址 8.1 FOE简介 ​ FOE(File Access over Ethercat),用于节点之间的文件传输。协议类似于TFTP协议,感觉…...

SQL Zoo 8.Using Null

以下数据均来自SQL Zoo 1.List the teachers who have NULL for their department.(列出所属部门为NULL的教师) select name from teacher where dept is null 2.Note the INNER JOIN misses the teachers with no department and the departments wit…...

LeetCode274. H 指数

题目链接: 274. H 指数 - 力扣(LeetCode) 思路分析:这个题目可以使用哈希表来以空间换时间,我们设置一个数组v来统计每一个对应的影响因子的文章出现的数量,遍历一遍后,v[i]表示影响因子为i的…...

概述:Dubbo、Nacos、 Zookeeper 等分布式服务协调与治理等技术

目录 1. Dubbo 2. Nacos 3. Zookeeper Dubbo、Nacos、Zookeeper 是分布式服务协调与治理领域中的关键技术,它们在微服务架构和分布式系统中扮演着重要角色。以下是对这些技术的详细介绍: 1. Dubbo 概述: Dubbo 是一个高性能、轻量级的开…...

【LINUX】小工具降耦合,全内核函数插入宏摸索测试中。。

这阵子把这个小工具对外的耦合度降了下, include/linux/printk_self.h r77683962/linux-6.9.0 - Gitee.comhttps://gitee.com/r77683962/linux-6.9.0/blob/master/include/linux/printk_self.h 这个用于初始化打印日志的级别和打印次数: void Param…...

24/8/12算法笔记 复习_线性回归

import numpy as np#导入包 X np.array([[1,1],[2,1]])#构造矩阵 y np.array([14,10])np.linalg.solve(X,y) #linalg是线性代数,用于求解线性方程AX b,solve计算线性代数回归问题X.T#转置 a X.T.dot(X)#矩阵乘法B np.linalg.inv(a)#求逆矩阵from sklearn.linea…...

Linux系统驱动(十四)输入子系统

文章目录 一、输入子系统(一)输入子系统框架结构(二)输入子系统的API 二、实现两个按键的驱动(一)实现思路(二)代码实现 一、输入子系统 在linux系统中使用输入子系统驱动上报鼠标&…...

力扣(2024.08.12)

1. 98:验证二叉搜索树 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def isValidBST(self, r…...

最新版的AutoGPT,我搭建好了

最近AutoGPT不是更新了嘛 安装 我按照官方的教程 在本地搭建好了 改动 可见的改动,主要是把原来的纯命令行改成前后端的形式 看下前端界面 界面比较简单,主要分3个大块 监控 第一个是监控 主要是看你在 build 里构建的Agents的运行情况 build 第一个是Ag…...

[SWPUCTF 2021 新生赛]PseudoProtocols(构造伪协议)

打开题目所给的环境我们可以看到这样一句话: 这里我先尝试访问/hint.php ,但是发现什么都没有发生, F12查看源代码也并没有发现什么,到这里来看的话似乎没有思路了,但是这个题的题目已经给了我们很明显的提示&#xff…...

基于STM32开发的智能语音助手系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码控制代码应用场景 智能家居控制个人语音助理常见问题及解决方案 常见问题解决方案结论 1. 引言 随着人工智能技术的发展,智能语音助手已经逐渐进入了人们的日常生活。…...

基于python的图像去雾算法研究系统设计与实现

博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…...

自定义 View 可以播放一段视频

请实现一个自定义 View 的核心代码,核心要求可以响应如下事件: // - 要求自定义 View 可以播放一段视频 / - 在 view 左侧区域上下滑动,可以提高减少音量 / / - 在 view 右侧区域上下滑动可以提高减少屏幕亮度 // - 在 view 左右滑动可以…...

LVS负载均衡集群部署之—NAT模式的介绍及搭建步骤

一、环境准备 1.准备三台rhel9服务器 服务器名称 主机名 ip地址备注LVS调度服务器lvs.timinglee.org eth0:172.25.254.100(外网) eth1:192.168.0.100(内网) 关闭selinux和防火墙webserver2网站服务器webserver1.timinglee.orgeth0:192.168.…...

【算法】浅析哈希算法【附代码示例】

哈希算法:数据存储与检索的基石 1. 引言 在计算机科学中,哈希算法是一种用于将数据(如文件、网络地址或数据库记录)转换为固定长度的哈希值的过程。哈希值通常是一个较短的数字或字符串,用于快速检索原始数据或验证数…...

2024.8.12

2024.8.12 【梦最让我费解的地方在于&#xff0c;明明你看不清梦里人们的脸&#xff0c;却清晰地知道他们是谁。】 Monday 七月初九 序理论 最小链覆盖&最长反链长度 我们设定一个二元关系符R和一个集合A 我们设定<A,R>这样一个类群&#xff0c;那么对于任意 a i…...

使用Python解析pdf、docx等格式文件。

针对不同类型的文件&#xff0c;需要采取特定的访问与解析策略来有效获取其中蕴含的知识。下面我们将介绍对于不同数据源数据的获取方式。 1 解析Docx文档 1.1 获取Docx文档中文本 from docx import Document # pip install python-docx # python-docx 0.8.11 filename xx…...

Linux网络通信基础API

这篇文章只有Linux网络通信基础API大参数信息&#xff0c;和返回值&#xff0c;这篇文章并没有这些基础API的参数类型介绍。accept的第二个参数可以查看客户端信息。 创建socket #include <sys/types.h> /* See NOTES */#include <sys/socket.h>int sock…...

Python爬虫:下载4K壁纸

&#x1f381;&#x1f381;创作不易&#xff0c;关注作者不迷路&#x1f380;&#x1f380; 目录 &#x1f338;完整代码 &#x1f338;分析 &#x1f381;基本思路 &#x1f381;需要的库 &#x1f381;提取图片的链接和标题 &#x1f453;寻找Cookie和User-Agent &…...

2024年【北京市安全员-B证】新版试题及北京市安全员-B证免费试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年【北京市安全员-B证】新版试题及北京市安全员-B证免费试题&#xff0c;包含北京市安全员-B证新版试题答案和解析及北京市安全员-B证免费试题练习。安全生产模拟考试一点通结合国家北京市安全员-B证考试最新大纲…...

python爬取B站视频实验

实验17&#xff1a;爬虫2 文章目录 实验17&#xff1a;爬虫21.实验目标及要求2. 实验主要内容3.实验小结 1.实验目标及要求 &#xff08;1&#xff09;掌握有关爬虫的包 &#xff08;2&#xff09;掌握爬虫方法 &#xff08;3&#xff09;爬取B站卡塔尔世界杯若干视频 2. 实验…...

10步搞定Python爬虫从零到精通!

学习Python网络爬虫可以分为以下几个步骤&#xff0c;每一步都包括必要的细节和示例代码&#xff0c;以帮助你从零开始掌握这一技能。 第一步&#xff1a;理解网络爬虫基础 什么是网络爬虫&#xff1f; 网络爬虫是一种自动化程序,用来从互联网上收集数据.它通过发送 HTTP 请求…...

SpringMVC学习笔记---带你快速入门和复习

一、初识SpringMVC 1.1、什么是SpringMVC 1.1.1、什么是MVC MVC是一种软件架构模式&#xff08;是一种软件架构设计思想&#xff0c;不止Java开发中用到&#xff0c;其它语言也需要用到&#xff09;&#xff0c;它将应用分为三块&#xff1a; M&#xff1a;Model&#xff0…...

Linux系统编程 day09 线程同步

Linux系统编程 day09 线程同步 1.互斥锁2.死锁3.读写锁4.条件变量&#xff08;生产者消费者模型&#xff09;5.信号量 1.互斥锁 互斥锁是一种同步机制&#xff0c;用于控制多个线程对共享资源的访问&#xff0c;确保在同一时间只有一个线程可以访问特定的资源或执行特定的操作…...

Vue快速入门(四)——Vue3及组合式API(一)

文章目录 一、认识Vue31. Vue2 选项式 API vs Vue3 组合式API2. Vue3的优势二、使用create-vue搭建Vue3项目1、认识create-vue2. 使用create-vue创建项目三、组合式API - setup选项1. setup选项的写法和执行时机2. setup中写代码的特点3. `<script setup>`语法糖4.小结四…...

vue项目名修改、webstorm和idea创建的项目重命名、重构项目、修改项目名称

一、需求 就是创建了一个项目&#xff0c;后期需要重命名&#xff0c;怎么办&#xff1f;----> 直接修改&#xff1f;肯定不行&#xff0c;因为里面有些配置也需要修改&#xff0c;假如你只改文件夹名称的话&#xff0c;里面配置都没修改&#xff0c;后期可能会出问题。 二…...

【MySQL】数据库约束和多表查询

目录 1.前言 2.数据库约束 2.1约束类型 2.2 NULL约束 2.3 NUIQUE&#xff1a;唯一约束 2.4 DEFAULT&#xff1a;默认值约束 2.5 PRIMARY KEY&#xff1a;主键约束 2.6 FOREIGN KEY&#xff1a;外键约束 1.7 CHECK约束 3.表的设计 3.1一对一 3.2一对多 3.3多对多 …...

抖店飞鸽客服自动回复软件开发教程与下载体验(.NET版)

转载请注明出处&#xff01; 原文链接&#xff1a;https://blog.csdn.net/zgyulongfei/article/details/140960430 本文适合的读者为&#xff1a; 抖店&#xff08;抖音小店&#xff09;个体商家&#xff1b;抖店店群商家&#xff08;店群商家&#xff1a;指的是开了几十个抖…...