Sftp和ftp over ssh2的区别

上传人:ldj****22 文档编号:28938991 上传时间:2018-01-21 格式:DOC 页数:19 大小:173.50KB
返回 下载 相关 举报
Sftp和ftp over ssh2的区别_第1页
第1页 / 共19页
Sftp和ftp over ssh2的区别_第2页
第2页 / 共19页
Sftp和ftp over ssh2的区别_第3页
第3页 / 共19页
Sftp和ftp over ssh2的区别_第4页
第4页 / 共19页
Sftp和ftp over ssh2的区别_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《Sftp和ftp over ssh2的区别》由会员分享,可在线阅读,更多相关《Sftp和ftp over ssh2的区别(19页珍藏版)》请在金锄头文库上搜索。

1、1Sftp 和 ftp over ssh2 的区别最近使用 SecureFx,涉及了两个不同的安全文件传输协议:-sftp-ftp over SSH2这两种协议是不同的。sftp 是 ssh 内含的协议,只要 sshd 服务器启动了,它就可用,它本身不需要 ftp 服务器启动。 ftp over SSH2 则象一个二传手。1、SFTP 的工作模式:图 1 显示了 SFTP 的工作模式,它是作为 SSH2 的一个子服务工作的。图 1 SFTP 工作模式2、FTP over SSH2此协议还是基于 ftp 协议的。在此协议中 SSH2 服务器起了一个桥梁作用,把数据在客户端和 ftp 之间转发。

2、ftp 协议本身包括两个通道,一个是控制通道,另一个是数据通道。FTP over SSH2 有两种情况,半安全连接( Less Secure Connection)和安全连接(Full Secure Connection)。在半安全连接时,ftp 客户端先和 SSH2 服务器连接,在这个连接中无论控制通道和数据通道都是加密的。但是 SSH2 服务器和 ftp 服务器之间就不是加密的了,如果 ftp 服务器运行在另外一台机器上, SSH2 服务器和 ftp 直接就是明文传输。见图 2。图 2 半安全连接2图 3 是安全连接模式的情形,SSH2 服务器和 FTP 服务器在同一台服务器上。图 3 安

3、全连接FTP(文件传输协议) 工作原理目前在网络上,如果你想把文件和其他人共享。最方便的办法莫过于将文件放 FTP 服务器上,然后其他人通过 FTP 客户端程序来下载所需要的文件。1、FTP 架构如同其他的很多通讯协议,FTP 通讯协议也采用客户机 / 服务器(Client / Server )架构。用户可以通过各种不同的 FTP 客户端程序,借助 FTP 协议,来连接 FTP 服务器,以上传或者下载文件。2、FTP 通讯端口知识FTP 服务器和客户端要进行文件传输,就需要通过端口来进行。FTP 协议需要的端口一般包括两种:控制链路-TCP 端口 213所有你发往 FTP 服务器的命令和服务器

4、反馈的指令都是通过服务器上的 21 端口传送的。数据链路-TCP 端口 20数据链路主要是用来传送数据的,比如客户端上传、下载内容,以及列目录显示的内容等。3、FTP 连接的两种方式在数据链路的建立上,FTP Server 为了适应不同的网络环境,支持两种连接模式:主动模式(Port)和被动模式(Pasv)。其实这两种连接模式主要是针对数据链路进行的,和控制链路无关。主动模式主动模式是这样工作的:客户端把自己的高位端口和服务器端口 21 建立控制链路。所有的控制命令比如 Is 或 get 都是通过这条链路传送的。当客户端需要服务器端给它传送数据时,客户端会发消息给服务器端,告诉自己的位置和打开

5、的高位端口(一般大于 1024 的端口都就叫高位端口),等候服务器 的 20 端口和客户端打开的端口进行连接,从而进行数据的传输。当服务器端收到信息后,就会和客户端打开的端口连接,这样数据链路就建立起来了。采用主动模式连接服务器的客户端,当它位于 NAT 或者防火墙的保护之后时会碰到连接失败的问题。这是因为当防火墙接到服务器发送过来的信息的时候,并不知道应该发送给内部网络中的哪一台客户端造成的。被动模式被动模式是这样工作的:当客户端发送数据请求后,服务器也会发信息给客户端,告诉客户端:服务器在本地打开了一个高位端口 P,你现在来连接我吧。当客户端收到该信息时,就会去连接服务器端的端口 P,连接

6、成功后,数据链路就建立了。从上面的解释中我们可以看到,两种模式主要的不同是数据连接建立的不同。对于Port 模式,是客户端在本地打开一个端口等服务器去连接建立数据连接,而 Pasv 模式就是服务器打开一个端口等待客户端去建立一个数据连接。浅析文件传输协议 (ftp) 的工作原理4起初,FTP 并不是应用于 IP 网络上的协议,而是 ARPANEt 网络中计算机间的文件传输协议, ARPANET 是美国国防部组建的老网络,于 1960-1980 年使用。在那时, FTP 的主要功能是在主机间高速可靠地传输文件。目前 FTP 仍然保持其可靠性,即使在今天,它还允许文件远程存取。这使得用户可以在某个

7、系统上工作,而将 文件存贮在别的系统。例如,如果某用户运行 Web 服务器,需要从远程主机上取得 HTML 文件和 CGI 程序在本机上工作,他需要从远程存储站点获取文件(远 程站点也需安装 Web 服务器)。当用户完成工作后,可使用 FTP 将文件传回到 Web 服务器。采用这种方法,用户无需使用 Telnet 登录到远程主机进行工 作,这样就使 Web 服务器的更新工作变得如此的轻松。FTP 是 TCP/IP 的一种具体应用,它工作在 OSI 模型的第七层,TCP 模型的第四层上,即应用层,使用 TCP 传输而不是 UDP,这样 FTP 客户在和服 务器建立连接前就要经过一个被广为熟知的三

8、次握手 的过程,它带来的意义在于客户与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠 的保证。下面,让我们来看看,一个 FTP 客户在和服务器连接是怎么样的一个过程(以标准的FTP 端口号为例)。首先,FTP 并不像 HTTP 协议那样,只需要一个端口作为连接(HTTP 的默认端口是80,FTP 的默认端口是 21),FTP 需要 2 个端口,一个端口是作 为控制连接端口, 也就是 21 这个端口,用于发送指令给服务器以及等待服务器响应;另一个端口是数据传输端口,端口号为 20(仅 PORT 模式),是用来建立 数据传输通道的,主要有 3 个作用 从客户向服务器发送一个文件。

9、 从服务器向客户发送一个文件。 从服务器向客户发送文件或目录列表。 其次,FTP 的连接模式有两种,PORT 和 PASV。PORT 模式是一个主动模式,PASV是被动模式,这里都是相对于服务器而言的。为了让大家清楚的认识这两种模式,朗月繁星分别举例说明。PORT 模式5当 FTP 客户以 PORT 模式连接服务器时,他动态的选择一个端口号(本次试验是6015)连接服务器的 21 端口,注意这个端口号一定是 1024 以上的,因 为 1024 以前的端口都已经预先被定义好,被一些典型的服务使用,当然有的还没使用,保留给以后会用到这些端口的资源服务。当经过 TCP 的三次握手后,连 接(控制信道

10、)被建立(如图 1和图 2)。图 1:FTP 客户使用 FTP 命令建立于服务器的连接图 2:用 netstat 命令查看,控制信道被建立在客户机的 6015 和服务器的 20 端口现在用户要列出服务器上的目录结构(使用 ls 或 dir 命令),那么首先就要建立一个数据通道,因为只有数据通道才能传输目录和文件列表,此时用户会发出 PORT 指令告诉服务器连接自己的什么端口来建立一条数据通道(这个命令由控制信道发送给服务器),当服务器接到这一指令时,服务器会使用 20 端口连接用 户在 PORT 指令中指定的端口号,用以发送目录的列表(如图 3)。6图 3:ls 命令是一个交互命令,它会首先与

11、服务器建立一个数据传输通道。经验证本次试验客户机使用 6044 端口当完成这一操作时,FTP 客户也许要下载一个文件,那么就会发出 get 指令,请注意,这时客户会再次发送 PORT 指令,告诉服务器连接他的哪个 新端 口,你可以先用netstat -na 这个命令验证,上一次使用的 6044 已经处于 TIME_WAIT 状态(如图 4)。图 4:使用 netstat 命令验证上一次使用 ls 命令建立的数据传输通道已经关闭当这个新的数据传输通道建立后(在微软的系统中,客户端通常会使用连续的端口,也就是说这一次客户端会用 6045 这个端口),就开始了文件传输的工作。 PASV 模式然而,当

12、 FTP 客户以 PASV 模式连接服务器时,情况就有些不同了。在初始化连接这7个过程即连接服务器这个过程和 PORT 模式是一样的,不同的是,当 FTP 客户发送ls、dir 、get 等这些要求数据返回的命令时,他不向服务器发送 PORT 指令而是发送PASV 指令,在这个指令中,用户告诉服务器自己 要连接服务器的某一个端口,如果这个服务器上的这个端口是空闲的可用的,那么服务器会返回 ACK 的确认信息,之后数据传输通道被建立并返回用户所要的信息 (根据用户发送的指令,如 ls、dir、get 等);如果服务器的这个端口被另一个资源所使用,那么服务器返回 UNACK 的信息,那么这时,FT

13、P 客户会 再次发送 PASV 命令,这也就是所谓的连接建立的协商过程。为了验证这个过程我们不得不借助 CUTEFTP Pro 这个大家经常使用的 FTP 客户端软件,因为微软自带的 FTP 命令客户端,不支持 PASV 模式。虽然你可以使用 QUOTE PASV 这个命令强制使用 PASV 模式,但是当你用 ls 命令列出服务器目录列表,你会发现它还是使用 PORT方式来连接服务器的。现在我们使用 CUTEFTP Pro 以 PASV 模式连接服务器(如图 5)。图 5:使用 CUTEFTP Pro 以 PASV 模式连接服务器请注意连接 LOG 里有这样几句话: COMMAND: PASV

14、227 Entering Passive Mode (127,0,0,1,26,108)COMMAND: LISTSTATUS: Connecting ftp data socket 127.0.0.1: 6764.125 Data connection already open; Transfer starting.226 Transfer complete.8其中,227 Entering Passive Mode (127,0,0,1,26,80). 代表客户机使用 PASV 模式连接服务器的 26x256+108=6764 端口。(当然服务器要支持这种模式)125 Data conne

15、ction already open; Transfer starting.说明服务器的这个端口可用,返回ACK 信息。再让我们看看用 CUTEFTP Pro 以 PORT 模式连接服务器的情况。其中在 LOG 里有这样的记录: COMMAND: PORT 127,0,0,1,28,37200 PORT command successful.COMMAND: LIST150 Opening ASCII mode data connection for /bin/ls.STATUS: Accepting connection: 127.0.0.1:20.226 Transfer complete

16、.STATUS: Transfer complete.其中,PORT 127,0,0,1,28,37 告诉服务器当收到这个 PORT 指令后,连接 FTP 客户的28x256+37=7205 这个端口。Accepting connection: 127.0.0.1:20 表示服务器接到指令后用 20 端口连接 7205 端口,而且被 FTP 客户接受。比较分析在这两个例子中,请注意: PORT 模式建立数据传输通道是由服务器端发起的,服务器使用 20 端口连接客户端的某一个大于 1024 的端口;在 PASV 模式中,数据传输的通道的建立是 由 FTP 客户端发起的,他使用一个大于 1024 的端口连接服务器的 1024 以上的某一个端口。如果从 C/S 模型这个角度来说, PORT 对于服务器来说是 OUTBOUND,而PASV 模式对于服务器是 INBOUND,这一点请特别注意,尤其是在使用防火墙的企业里,比如使用微

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号