【发布时间】:2013-04-18 20:47:58
【问题描述】:
如果使用 PHP sftp 像 shown here 和 ssh2_scp_send 那样打开文件有什么真正的区别,我想知道我计划在每个 php 会话上上传多个文件,并且不想花太多时间上传文件。如果有人知道这些函数是如何在 PHP 中实现的,我会很高兴知道这样我就可以选择正确的了。
再次感谢。
【问题讨论】:
如果使用 PHP sftp 像 shown here 和 ssh2_scp_send 那样打开文件有什么真正的区别,我想知道我计划在每个 php 会话上上传多个文件,并且不想花太多时间上传文件。如果有人知道这些函数是如何在 PHP 中实现的,我会很高兴知道这样我就可以选择正确的了。
再次感谢。
【问题讨论】:
ssh2_sftp() 用于现有连接,然后您使用fopen() 然而,这也被大多数人认为是“不安全的”。这就是ssh2_scp_recv() 使用基于 BSD RCP 协议的安全副本的地方。 SCP 使用 Secure Shell (SSH) 进行数据传输,并使用相同的身份验证机制,从而确保传输中数据的真实性和机密性。客户端可以将文件发送(上传)到服务器,可选地包括它们的基本属性(权限、时间戳)。客户端还可以从服务器请求文件或目录(下载)。 SCP 默认通过 TCP 端口 22 运行。与 RCP 一样,没有定义协议细节的 RFC。
【讨论】:
ssh2_sftp + fopen 有什么不安全之处?另请注意,几乎所有关于 SCP 的文章都同样适用于 SFTP(除了 SFTP 显然不受 RCP 启发)。
SFTP 和 SCP 是不同的协议。两者都通过 SSH 运行。
SCP 只能复制(上传/下载)文件。它不能执行任何其他操作,例如列出目录内容、删除文件等。
SFTP 是一个成熟的远程文件系统协议。
一般而言,SCP 可能会更快,因为它能够更好地利用 SSH 虚拟连接通道。但两者都值得测试。
另请注意,SCP 通常仅对 *nix SSH 服务器有效。 SFTP 更通用。
有关 SFTP + SCP 的详细信息,请参阅:
https://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol
https://en.wikipedia.org/wiki/Secure_copy_protocol
【讨论】: