首页 > 解决方案 > PHP 的 ftp_login() 是否有基于密钥的身份验证版本?

问题描述

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

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

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

标签: phpftpsftp

解决方案


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

SFTP 是与 FTP 完全不同的协议。所以绝对没有办法,您可以使用ftp_*SFTP的功能(仅用于公钥认证)。

对于 SFTP(即使没有公钥认证),您必须使用一组不同的函数,例如 phpseclib 或 PHP SSH2。这确实意味着完全重写代码。


推荐阅读