phpseclib SFTP 用户身份验证失败

我正在尝试通过使用 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();

                }


杨__羊羊
浏览 186回答 1
1回答

守着星空守着你

-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')])而不是您正在做的事情来进行键盘交互。也许这两个技巧的一些组合会帮助你。
打开App,查看更多内容
随时随地看视频慕课网APP