php - PHP 的 ftp_login() 是否有基于密钥的身份验证版本?
问题描述
我正在尝试更改ftp_login()
与用户名和密码一起使用的旧代码,以改用我在服务器上安装的 ssh 密钥。
我发现 phpseclib 似乎能够做到这一点,但它需要我重写整个代码部分(例如ftp_put()
必须成为$sftp->put()
)并安装该库。理想情况下,我只需要更换ftp_login()
,不需要安装任何东西。
我在研究中没有遇到过类似的事情,但这并不意味着它不存在。有谁知道基于密钥的替代方案ftp_login()
不是 phpseclib?
解决方案
PHPftp_*
函数实现 FTP 协议。公钥认证与 SFTP 协议(基于 SSH)一起使用。
SFTP 是与 FTP 完全不同的协议。所以绝对没有办法,您可以使用ftp_*
SFTP的功能(仅用于公钥认证)。
对于 SFTP(即使没有公钥认证),您必须使用一组不同的函数,例如 phpseclib 或 PHP SSH2。这确实意味着完全重写代码。
推荐阅读
- python - 有没有办法在 for 循环中更改全局函数而不是创建一个新函数?
- python - 如何将可调用对象定义到另一个python类中
- django - 多语言网站:如何在“静态”文本(编码到模板中)和数据库之间建立清晰的关系?
- node.js - 使用自定义项目环境变量类型减速扩展 @types/node
- r - 函数具有意外行为(dplyr 中的变异函数)
- reactjs - 无法将 redux 商店中可用的模拟数据用于 react-testing-library
- ionic3 - Ionic3 超级入门 ngx-translation 无法在 android 真实设备上运行
- jquery - 用于动态添加元素的 Jquery 分组事件侦听器
- java - 将输入流转换为 xlsx (Excel) 文件时如何防止换行符干扰
- javascript - 输入时是否可以使文本框垂直滚动?