![FTP 和 SFTP 连接是否相同](https://linux22.com/image/625015/FTP%20%E5%92%8C%20SFTP%20%E8%BF%9E%E6%8E%A5%E6%98%AF%E5%90%A6%E7%9B%B8%E5%90%8C.png)
设置此功能的开发人员现在不再与我们合作。我尝试通过 SFTP 连接到我的服务器(例如:sftp://127.0.0.1),但无法连接。但当我使用 ftp:// 作为主机时,它就会连接。我的服务器有 SSL。
只是想知道如果我使用 FTP 并且我的服务器有 SSL,那么连接是否与 SFTP 一样安全?
更多信息: 以前使用 sftp://127.0.0.1 时是可以的
答案1
他们是两个不同的东西。
FTP 是一种非安全文件传输协议。您的服务器“具有 SSL”(我假设您的意思是https
)对 FTP 服务器没有任何影响。
SFTP 是基于 SSH 的协议。如果您的服务器安装了 SSH 服务器,那么您应该能够使用 SFTP。
从man sftp
:
DESCRIPTION
sftp is an interactive file transfer program, similar to ftp(1), which
performs all operations over an encrypted ssh(1) transport. It may also
use many features of ssh, such as public key authentication and compres-
sion. sftp connects and logs into the specified host, then enters an
interactive command mode.
答案2
有一个重要的区别需要注意:
- FTP(URL 类似于 ftp://...)是未加密、未受保护、清晰、纯文本的文件传输协议
- FTPS(url 类似于 ftps://...)是通过 SSL 或 TLS 传输的 FTP:该协议与上面的 FTP 完全相同,但它在 SSL/TLS 加密的网络通道内运行
- SFTP(url 类似于 sftp://...)是 SSH 文件传输协议:它是 SSH(安全外壳)的子系统,因此它在 SSH 通道内以加密方式运行
如果您可以通过 FTP 进入您的服务器,那么至少我们可以肯定那里安装了一个 FTP 服务器,并且希望这样的 FTP 服务器能够隐式(在端口 990 上)或显式(连接在端口 21 上以未加密的形式启动,然后通过调用 STARTTLS 进行加密)接受 SSL/TLS 连接(FTPS)。
这并不一定意味着您的服务器上可以使用 SSH/SFTP。您应该咨询系统管理员,以确保可以使用哪些文件传输协议、哪种身份验证方法(例如 SSH/SFTP 支持 PKI 身份验证)等等...