phpseclib - SSH_AUTH_SOCK 未找到

phpseclib - SSH_AUTH_SOCK not found

我与另一家公司合作,该公司正在从常规 FTP 转变为 SFTP 以建立联系。他们告诉我,我现有的用户名和密码是相同的,但我现在需要通过端口 22 上的 SFTP 进行连接。我有几个 PHP 脚本可以做一些基本的事情,比如连接到他们的站点,获取目录列表,并每天上传和下载文件。这些在 FTP 上都可以正常工作,所以我只需要将协议换成 SFTP。

经过一些研究,一致认为 phpseclib 是使用 PHP 执行 SFTP 的最简单和最可靠的方法。我的服务器是 运行ning Linux 和 Apache。我下载了这个库并尝试 运行 只是 phpseclib 给出的基本示例,但是我得到一个错误:

Notice: SSH_AUTH_SOCK not found in System/SSH/Agent.php on line 244

当我查看 Agent.php 时,我看到脚本正在寻找要在 $_SERVER$_ENV 中定义的 SSH_AUTH_SOCK。我一定是遗漏了一些明显的东西,但我不知道如何克服这个错误。

您正在尝试连接到 SSH 身份验证代理 (ssh-agent)。

当代理为 运行 时,它导出 SSH_AUTH_SOCK 环境变量。

你的情况显然没有发生什么。

但是你没有告诉我们,你为什么要尝试使用代理,如果有的话。如果有的话,你做了什么来设置它。所以很难给你更具体的建议。

另见 How is SSH_AUTH_SOCK setup and used by ssh-agent?

运行 波纹管命令:

评估ssh-agent -s

对我来说效果很好。