我正在尝试通过使用 phpseclib 在 laravel 5.7 框架上运行的 Web 应用程序测试 SFTP 连接。这是验证码,只使用密码验证。SFTP 服务器还使用 IP 白名单作为额外的安全措施。 $sftp = new SFTP(env('SFTP_HOST')); if (!$sftp->login(env('SFTP_USER'), env('SFTP_PASSWORD'))) { echo $sftp->getLog(); }
1 回答
守着星空守着你
TA贡献1799条经验 获得超8个赞
-vvv日志几乎让我想知道服务器是否正在使用多因素身份验证。就像您必须同时提供 RSA 密钥和密码一样。如果是这样,您应该能够实现这一目标:
$key = new RSA;
$key->loadKey(file_get_contents('/home/forge/.ssh/id_rsa'));
$sftp = new SFTP(env('SFTP_HOST'));
if (!$sftp->login(env('SFTP_USER'), $key, env('SFTP_PASSWORD'))) {
echo $sftp->getLog();
}
日志还表明它-vvv直接跳到键盘交互式身份验证 - 它甚至没有尝试密码身份验证。您可以强制 phpseclib 通过做$sftp->login(env('SFTP_USER'), ['Password:' => env('SFTP_PASSWORD')])而不是您正在做的事情来进行键盘交互。
也许这两个技巧的一些组合会帮助你。
- 1 回答
- 0 关注
- 185 浏览
添加回答
举报
0/150
提交
取消