FTP FTPS和SFTP

本文详细介绍了FTP、FTPS和SFTP的协议知识,包括它们的传输模式、安全性以及验证方式。FTPS即FTP over SSL,分为显示和隐式两种,而SFTP是SSH 2.0的扩展,提供安全的文件传输。SFTP相较于FTP更安全,因为它的命令和数据都是加密的。文章还提到了Java客户端API如Apache Commons Net和jsch,以及流行的FTP和SSH客户端软件如FileZilla和WinSCP。最后,文章展示了如何使用OpenSSH搭建SFTP服务器,并提供了密码验证和密钥验证的配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、协议知识
FTP
    FTP (File Transfer Protocol,RFC 959)是TCP/IP网络上用于文件传输的标准协议,基于C/S架构,可以上传、下载、删除文件,创建或改变服务器上的目录。在客户端和服务器间要建立分离的控制和数据连接,控制连接用于Session管理,如交换命令和回复、交换用户标识和密码等,数据连接用于传输数据。FTP使用明文登录协议验证用户名和密码,如果服务器允许也可以匿名连接。
    FTP有两种传输模式:主动和被动。主动模式时,客户端创建到服务器的TCP控制连接,发送客户端IP地址和随机的端口号,然后等待服务器初始化数据连接。这种情况下,如果客户端有防火墙,将无法接受进入的TCP连接。被动模式时,客户端使用控制连接向服务器发送PASV命令,然后接收服务器IP地址和端口号,客户端使用随机端口建立到服务器的数据连接。由于控制连接和数据连接都由客户端发起,可以解决防火墙问题。
    多数浏览器和文件管理器都能连接FTP服务器,默认大都使用被动模式。FTP URL语法如下:
    ftp://[<user>[:<password>]@]<host>[:<port>]/<url-path>
    FTP不是一个安全的协议,用户名、密码、命令和数据等都使用明文传输,内容非常容易被截获。在加密机制创立前设计的的网络协议,如SMTP、Telnet、POP、IMAP等都有这个问题。

FTPS
    FTP over SSL,常被称为Secure FTP,它是构建在SSL/TLS(RFC5246,Secure Socket Layer/Transport Layer Security)协议之上的,通过SSL/TLS对信道进行加密传输,它本身还需要FTP服务器的支持,又分为显示和隐式:
    显示FTPS又称为FTPES,是对FTP标准的扩展,客户端必须显示请求(客户端发送"AUTH TLS"命令)对FTP会话加密。如果客户端不要求加密,服务器也允许非加密通讯。服务器可以选择允许或拒绝未请求TLS的连接。这个扩展协议在推荐标准RFC4217中定义。
    隐式FTPS是过期的FTP标准,需要所有客户端都使用SSL或TLS连接。为了保持兼容性,隐式FTPS控制连接使用990端口,数据连接使用989端口。注意,隐式FTPS未在RFC4217中定义。
    FTPS支持如下验证方式:
    1、密码验证
    2、SSL证书验证
 
SFTP
    SFTP(SSH File Transfer Protocol)是SSH 2.0的一项扩展协议,提供安全的文件访问、传输和管理功能。SFTP协议的目标是通过可靠的数据流提供安全的文件传输功能,本身不提供验证和安全机制,需要依赖底层协议。SFTP协议虽然在SSH2协议中描述,但它是通用的,独立于SSH2套件中的其余协议。SFTP常作为SSH2.0实现的一个子系统。
    SFTP功能与FTP相似

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值