跳至主要内容

什么是安全文件传输协议(SFTP)?

什么是安全文件传输协议?

安全文件传输协议(SFTP)是一种标准网络协议,用于在已连接的系统之间安全传输文件。网络协议是一套既定规则,可充当通用语言,无论网络中设备使用的特定硬件或软件如何,都能确保通信的顺利进行。SFTP 为文件传输添加验证和加密功能,使组织能够安全地共享文件,并满足敏感文件数据的监管合规性要求。

为什么安全文件传输协议如此重要?

数据安全性和机密性是任何网络环境下进行文件传输的基本要求,无论是在企业局域网(LAN)内部还是通过互联网进行传输。安全文件传输协议与其他常见的网络安全协议(如 HTTPS(安全超文本传输协议))协同使用,以确保网络层面的文件数据安全。

SFTP 旨在取代文件传输协议(FTP),后者是传统的文件传输方式。SFTP 用于传输敏感文件,广泛应用于全球众多常见应用程序,例如 Git、VSCode、Ansible、WordPress 以及 AWS Transfer Family。

SFTP 中的 S 代表什么?

SFTP 又称 SSH 文件传输协议,因其采用 Secure Shell(SSH)连接协议而得名。S 既可代表安全,也可代表 Secure Shell。

SSH

SSH 协议是一种基于验证的加密连接协议,用于网络通信。SSH 通过传输控制协议(TCP)处理安全数据传输、验证和连接。TCP 是主要的互联网传输协议之一。

SSH 确保建立会话后,网络上的任何侦听器都无法破译双方共享的机密通信内容。例如,网络上的侦听器将无法查看通过 Secure Shell 加密的连接传输的密码或个人身份信息(PII)。

SSH 允许客户端(用户)在远程服务器上执行基本命令;然而,SSH 缺乏传输和操作文件的能力。为实现文件的安全传输及文件操作,SSH 需采用分层方法,并与 SFTP 结合使用。

安全文件传输协议如何工作?

SFTP 允许用户发送、接收和操作服务器文件及文件夹,从而降低因连接受损而导致信息泄露的风险。SFTP 对所有文件内容和命令进行加密,使其在传输过程中无法被破译,从而确保文件传输功能合规性。

客户端-服务器架构

SFTP 协议使用 SSH 客户端-服务器架构模型以进行通信。即使会话由客户端发起,这种架构模式也使服务器能够控制连接、资源分配及安全性。

公钥和私钥基础设施

SFTP 使用 SSH 公钥和私钥对客户端与服务器之间的会话进行验证。使用 SSH 密钥基础设施可确保安全管理成本降至最低,这仅涉及 SFTP 客户端和 SFTP 服务器。

默认使用端口 22

默认情况下,SFTP 使用端口 22,通过 TCP 上的 SSH 连接实现可靠的数据传输。然而,如果端口 22 上存在连接,则可在 SFTP 中命名不同的端口。

恢复中断的传输

SFTP 允许用户恢复因会话中断而暂停的文件传输。即使在连接不稳定的情况下,恢复文件传输也能提高工作效率。

常见的 SFTP 命令有哪些?

用户可通过命令行界面(CLI)执行 SFTP 命令,也可以在内置 SFTP 的应用程序中按照点击式工作流程执行 SFTP 命令。Windows、Mac 和 Linux 用户均可通过 shell 应用程序访问 SFTP 命令行。以下是一些使用 bash shell 的实用 SFTP 命令。

启动和关闭 SFTP 会话

sftp user@hostname 例如 sftp dan@example.com

在 example.com 服务器上打开新的 SFTP 连接。shell 中的命令提示符将更改为 sftp>,表示会话已开始。此命令中可包含多种选项,例如:

  • -P [数字],用于指定端口号
  • -i [文件],用于包含私钥文件,以及
  • -r,用于开启递归目录传输。

sftp exit,用于关闭 SFTP 会话。

传输文件

get server_path_and_filename local_path,用于将给定文件从服务器复制到指定目录。

例如 get /projects/marketing/proposal.txt /newopportunities

put local_path_and_filename server_path,用于将本地文件传输到给定的服务器目录。

例如 put /finances/invoices/march.txt /projects/marketing/payments

同样,regetreput 命令用于恢复中断的传输。

远程文件管理

  • chown user path,用于将服务器上给定路径下文件或文件夹的所有权更改为指定用户。
  • chmod number path,用于更改服务器上给定路径下文件或文件夹的权限。
  • ls,用于显示当前服务器目录中的文件和文件夹列表。
  • cd path,用于导航到服务器上的给定目录。
  • mkdir dir_name,用于在服务器上新建文件夹。
  • rmdir dir_name,用于删除服务器上的给定文件夹。
  • rename old_file_name new_file_name,用于重命名服务器上的给定文件。
  • pwd,用于显示服务器上的当前目录。
  • lpwd,用于显示当前的本地目录。

SFTP 与其他文件传输协议相比如何?

SFTP 是多种标准文件传输协议中的一种。

SFTP 与FTPS

FTP 安全协议(FTPS)基于文件传输协议使用传输层安全性协议(TLS)和安全套接字层(SSL)协议,以实现安全的文件传输。使用 FTPS 进行验证依赖于 SSL 证书管理实践。FTPS 现已基本弃用。

FTPS 基于 FTP 构建,而 SFTP 则是为取代 FTP 而推出的更安全的架构方案。如今,SFTP 的使用范围远比 FTPS 广泛,这得益于其简单性、安全性以及云支持。

SFTP 与TFTP

普通文件传输协议(TFTP)是一种采用客户端-服务器架构的轻量级文件传输协议。TFTP 不包含任何内置安全措施,因此在常规环境中进行文件传输时,必须叠加安全协议或防护措施。

虽然 SFTP 广泛用于各种应用程序,但设置或启动新硬件、固件和操作系统时,TFTP 通常仅在本地安全网络中直接使用。

使用 SFTP 的最佳实践有哪些?

采用公钥-私钥管理的最佳实践,包括在 SFTP 服务器上进行密钥轮换和安全存储。确保您的 SFTP 服务器始终安装最新的安全更新和补丁,并采用 AES 等强加密技术。记录成功的文件传输和失败的访问尝试,以进行异常检测和响应。

请记住,SFTP 只是网络安全的一部分。防火墙、入侵检测系统及其他安全措施应根据您的特定网络架构量身定制。

AWS 如何支持您的文件存储需求?

Amazon 提供多种安全文件存储和安全文件传输解决方案。

Amazon S3 是专为从任意位置存储和取回任意数量的数据而构建的对象存储。您可以随时随地用它存储和检索任意数量的数据(包括文件),包括自动文件传输功能。

Amazon Elastic File System(EFS)提供无服务器、完全弹性的云文件存储服务,以便您创建可供 Amazon Elastic Compute Cloud(EC2)实例及其他 AWS 云服务访问的文件系统。它支持完整的文件系统访问语义(例如强一致性和文件锁定)。您无需预置或管理存储容量和性能即可共享文件数据。

AWS Transfer Family 提供完全托管式支持,可将文件直接通过 SFTP、AS2、FTPS、FTP 和 Web 浏览器安全传入和传出 Amazon S3 或 Amazon EFS。通过维持身份验证、访问和防火墙的现有客户端配置,可以实现文件传输工作流程的无缝迁移、监控和自动化,客户、合作伙伴和内部团队或者其应用程序无需任何更改。

立即创建免费账户,开始在 AWS 上使用文件存储。