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();
                }

mary_zhang_YINNG 回答:phpseclib SFTP用户认证失败

-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日志还表明它正在直接跳至与键盘交互的身份验证-甚至没有尝试进行密码身份验证。您可以通过执行$sftp->login(env('SFTP_USER'),['Password:' => env('SFTP_PASSWORD')])而不是正在执行的操作来强制phpseclib进行键盘交互。

也许这两个技巧的组合会帮助您。

本文链接:https://www.f2er.com/2826099.html

大家都在问