phpseclib - 找不到SSH_AUTH_SOCK

时间:2015-03-27 13:22:31

标签: sftp phpseclib ssh-agent

我与另一家正在从常规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。我必须遗漏一些明显的东西,但我不知道如何克服这个错误。

2 个答案:

答案 0 :(得分:2)

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

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

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

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

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

答案 1 :(得分:0)

运行以下命令:

评估ssh-agent -s

对我来说很好。