簡體   English   中英

phpseclib SFTP 用戶身份驗證失敗

[英]phpseclib SFTP failed user authentication

我正在嘗試使用 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();
                }

-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 進行鍵盤交互。

也許這兩個技巧的某種組合會幫助你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM