为了账号安全,请及时绑定邮箱和手机立即绑定

phpseclib SFTP 用户身份验证失败

phpseclib SFTP 用户身份验证失败

PHP
杨__羊羊 2022-07-16 09:52:35
我正在尝试通过使用 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')])而不是您正在做的事情来进行键盘交互。


也许这两个技巧的一些组合会帮助你。


查看完整回答
反对 回复 2022-07-16
  • 1 回答
  • 0 关注
  • 185 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信