当前位置: 首页 > 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…...

提升51%系统响应:开源工具Win11Debloat让老旧电脑焕发新生

提升51%系统响应&#xff1a;开源工具Win11Debloat让老旧电脑焕发新生 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter an…...

零基础玩转PowerPaint-V1:手把手教你用Gradio实现智能修图,小白也能轻松上手

零基础玩转PowerPaint-V1&#xff1a;手把手教你用Gradio实现智能修图&#xff0c;小白也能轻松上手 你是不是也遇到过这样的烦恼&#xff1f;拍了一张很满意的照片&#xff0c;但背景里总有个碍眼的垃圾桶&#xff1b;或者找到一张完美的素材图&#xff0c;偏偏有个大大的水印…...

‌智慧校园软件怎么选?手把手教你看懂核心功能

✅作者简介&#xff1a;合肥自友科技 &#x1f4cc;核心产品&#xff1a;智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…...

实战指南:基于快马平台用PostgreSQL的JSONB字段构建灵活的产品管理系统

今天想和大家分享一个实战项目经验&#xff1a;如何用PostgreSQL的JSONB字段为电商网站构建灵活的产品管理系统。这个方案特别适合产品属性差异大的场景&#xff0c;比如同时卖手机和书籍的电商平台。 为什么选择JSONB字段 电商网站经常遇到一个头疼问题&#xff1a;不同品类的…...

OpenClaw+千问3.5-9B:自动化测试报告生成器

OpenClaw千问3.5-9B&#xff1a;自动化测试报告生成器 1. 为什么需要自动化测试报告 作为开发团队中的测试负责人&#xff0c;我每周都要面对数十份测试报告的手工整理工作。从Jenkins导出原始数据、用Excel制作图表、再到Word中排版成文档&#xff0c;整个过程至少消耗3-4小…...

小米扫地机器人固件系统架构与功能解析

平台采用某米1代扫地机。 stm32f103真实项目程序。 c原程序 keil工程。 目前只有32端代码能实现延边避障防跌落充电等功能。适合需要学习项目与代码规范的工程师 硬件驱动包含 陀螺仪姿态传感器bmi160、电源管理bq24733等。 软件驱动包括 IIC、PWM、SPI、多路ADC与DMA、编码器输…...

ZYNQMP平台下arm64架构的82599ES万兆网驱动移植实战指南

1. 环境准备与驱动源码获取 在ZYNQMP平台上折腾万兆网卡驱动移植&#xff0c;第一步得把开发环境搭好。我用的是一台Ubuntu 20.04的主机作为开发机&#xff0c;交叉编译工具链用的是Xilinx官方提供的Vitis工具链。这里有个坑要注意&#xff1a;必须确认你的工具链版本和ZYNQMP内…...

DXVK:突破Linux游戏性能瓶颈的Vulkan转换层解决方案

DXVK&#xff1a;突破Linux游戏性能瓶颈的Vulkan转换层解决方案 【免费下载链接】dxvk Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine 项目地址: https://gitcode.com/gh_mirrors/dx/dxvk 技术价值&#xff1a;重新定义Linux游戏图形渲染标准 填…...

快叮一物一码系统背后,快消品牌最缺的不是技术

快叮一物一码系统背后&#xff0c;快消品牌最缺的不是技术很多企业把快叮一物一码系统当成一个“扫码工具”&#xff0c;结果项目上线3个月就失速&#xff1a;消费者扫过一次不再扫&#xff0c;渠道嫌麻烦不愿推&#xff0c;业务团队拿不到能指导市场动作的数据。**快消行业真正…...

Cloudflare防火墙实战:5个高效规则提升网站安全与性能

1. Cloudflare防火墙&#xff1a;你的网站安全第一道防线 第一次接触Cloudflare防火墙时&#xff0c;我完全被它强大的功能震撼到了。作为一个免费工具&#xff0c;它能拦截90%以上的恶意流量&#xff0c;这简直是小站长的福音。记得去年我的个人博客突然遭遇一波CC攻击&#x…...