ftp 程序包
从 AL2023 开始,AL2 中的 ftp 程序包在 Amazon Linux 中不再提供。此决定是我们对安全性、可维护性和现代软件开发实践持续承诺的一部分。在迁移至 AL2023 的过程中(或之前),我们建议将任何对传统 ftp 程序包的使用迁移至其替代方案之一。
背景
传统的 ftp 程序包在上游已多年未得到积极维护。其源代码的最后一次重要更新发生在 2000 年代初期,且原始源代码存储库已不可用。尽管一些 Linux 发行版提供了安全漏洞补丁,但该代码库基本上仍处于无人维护状态。
建议的替代方案
AL2023 为 FTP 功能提供了几种现代的、积极维护的替代方案:
lftp(在 AL2 和 AL2023 中可用)-
一个复杂的文件传输功能程序,支持 FTP、HTTP、SFTP 和其他协议。它比传统的
ftp客户端提供更多功能,并且得到积极维护。安装命令:dnf install lftp。
curl(在 AL2 和 AL2023 中可用)-
一个多功能命令行工具,用于通过 URL 传输数据,支持 FTP、FTPS、HTTP、HTTPS 和许多其他协议。
在 AL2023 中通过
curl-minimal程序包默认提供。如需更广泛的协议支持,可选择使用curl-full升级至 dnf swap curl-minimal curl-full。 wget(在 AL2 和 AL2023 中可用)-
一个用于从网络下载文件的非交互式命令行实用程序,支持 HTTP、HTTPS 和 FTP 协议。
安装命令:dnf install wget(未在所有 AL2023 映像中默认安装)
sftp(在 AL2 和 AL2023 中可用)-
一种通过 SSH 运行的安全文件传输功能协议,提供加密的文件传输。
作为 OpenSSH 程序包的组成部分默认提供。
迁移注意事项
如果您的应用程序或脚本依赖传统的 ftp 客户端,请考虑以下迁移方法:
-
更新脚本以使用现代替代方案:修改您的脚本以使用
lftp、curl、wget、或sftp替代传统的ftp客户端。 -
检查程序包依赖关系:某些应用程序可能在其程序包元数据中将
ftp程序包列为依赖项,即使它们内部早已迁移使用现代协议。在这些情况下,即使缺少ftp程序包中的/usr/bin/ftp,应用程序仍可能在 AL2023 上正常运行。请检查应用程序的实际要求,而非仅依赖声明的依赖关系。 -
更新应用程序依赖关系:对于您维护的仍声明依赖
ftp程序包但实际并未使用的应用程序,请更新程序包元数据以移除此不必要的依赖项。
安全考虑因素
FTP 协议以明文形式传输数据,包括身份验证凭证。对于安全敏感型应用程序,我们强烈建议使用加密替代方案(例如 SFTP 或 HTTPS),这些方案均受推荐替代工具的支持。