我与另一家正在从常规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
。我必须遗漏一些明显的东西,但我不知道如何克服这个错误。
答案 0 :(得分:2)
您正在尝试连接到SSH身份验证代理(ssh-agent
)。
运行代理程序时,它会导出SSH_AUTH_SOCK
环境变量。
你的情况显然没有发生什么。
但是你没有告诉我们,你为什么要尝试使用代理,如果有的话。你做了什么设置,如果有的话。所以很难给你一个更具体的建议。
答案 1 :(得分:0)
运行以下命令:
评估ssh-agent -s
对我来说很好。