我正在嘗試通過使用 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 關注
- 224 瀏覽
添加回答
舉報
0/150
提交
取消