phpseclib使用sftp - ssh连接到localhost

时间:2017-01-11 06:28:01

标签: php ssh phpseclib

我正在使用phpseclib(https://github.com/phpseclib/phpseclib),我遇到了一个我不知道如何解决的问题。

所以基本上我想用PHP连接到运行脚本的同一台服务器,通过SSH执行一些SFTP事务。

我在命令行上尝试了ssh localhost,它使用我的SSH密钥对登录。

我实现了phpseclib从远程服务器下载/上传文件。现在我正在为我编写的代码编写单元测试。但是,我无法模拟SFTP类,因为需要为每个连接启动对象,有没有办法测试我编写的函数,基本上只是一个文件下载和处理数据函数。

1 个答案:

答案 0 :(得分:0)

我的猜测:您的~/.ssh/id_rsa文件是与~/.ssh/authorized_keys中的公钥对应的私钥。因此,当您尝试使用ssh localhost登录时,它实际上并没有在没有身份验证的情况下登录您 - 它使用公钥登录您,但您只是没有意识到它。

其他一些不太可能的可能性:

  1. 您已经安装了ssh-agent并且正在使用它而没有意识到它。
  2. 您使用基于主机的身份验证进行身份验证(phpseclib不支持)
  3. 执行ssh -v localhost然后发布它所说的内容可能会有所帮助。