PHP的ftp_login()是否有基于密钥的身份验证版本?

时间:2018-10-17 12:19:02

标签: php ftp sftp

我正在尝试更改旧的代码段,该代码段将ftp_login()与用户名和密码一起使用,以代替使用我在服务器上安装的ssh密钥。

我发现phpseclib似乎可以做到这一点,但是它要求我重写代码的整个部分(例如ftp_put()必须变成$sftp->put())并安装该库。理想情况下,我只需要替换ftp_login(),就不需要安装任何东西。

在我的研究中我没有遇到过类似的事情,但这几乎并不意味着它不存在。有人知道不是phpseclib的基于ftp_login()的基于密钥的替代方法吗?

1 个答案:

答案 0 :(得分:2)

PHP ftp_*函数实现FTP协议。公钥认证与SFTP协议(基于SSH)​​一起使用。

SFTP是与FTP完全不同的协议。因此,绝对不可能,您可以将ftp_*函数用于SFTP(仅用于公共密钥身份验证)。

对于SFTP(即使没有公共密钥身份验证),也必须使用一组不同的功能,例如phpseclib或PHP SSH2。这确实意味着对代码的完全重写。