0

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

在做了一些研究之后,似乎一致认为 phpseclib 是使用 PHP 执行 SFTP 的最简单和最强大的方法。我的服务器正在运行 Linux 和 Apache。我下载了该库并尝试仅运行 phpseclib 给出的基本示例,但出现错误:

注意:在第 244 行的 System/SSH/Agent.php 中找不到 SSH_AUTH_SOCK

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

4

2 回答 2

2

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

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

在您的情况下显然没有发生什么。

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

另请参阅ssh-agent 如何设置和使用 SSH_AUTH_SOCK?

于 2015-03-27T14:13:22.820 回答
0

运行以下命令:

评估ssh-agent -s

这对我来说可以。

于 2019-09-02T06:01:40.867 回答