Laravel 无法使用 privatekey.pem / privatekey.ppk 连接我的 SFTP 服务器

问题描述 投票:0回答:1

我正在尝试使用 privatekey.pem / privatekey.ppk 连接我的 SFTP 服务器 但仍然收到相同的错误,即“无法使用用户名登录:XXXXX,主机:XX.XX.XX.XX” [![在此处输入图像描述][1]][1] [1]:https://i.stack.imgur.com/icMPx.png

最初,我有 privatekey.ppk 然后我使用 puttygen 转换为 privatekey.pem 因为我认为 Laravel 不能使用文件 .ppk 。但结果还是一样。

顺便说一句,我可以通过 WinSCP 使用我的 privatekey.ppk 进行访问,并通过 Terminal 使用我的 privatekey.pem 进行访问。但不幸的是 Laravel,我无法通过。

我使用的一些信息:

  • Laravel 8
  • 7 菲律宾比索
  • 联盟/flysystem-sftp:1.1
  • phpseclib/phpseclib:2.0

我也尝试了phpseclib连接,但仍然相同

use phpseclib\Crypt\RSA;
use phpseclib\Net\SFTP;

    $key = new RSA;
    $key->loadKey(file_get_contents('C:/key/privatekey.pem'));
    
    $sftp = new SFTP('XX.XX.XX.XX');
    
    if (!$sftp->login('XXXXX', $key)) {
        dd($sftp->getLog());
    }

我的config ilesystems.php

        'sftp' => [
        'driver' => 'sftp',
        'host' => 'XX.XX.XX.XX',
        'username' => 'XXXX',
        'privateKey' => file_get_contents('C:/key/privatekey.pem'),
        'root' => '/upload'
    ]

我的myprivatekey.pem

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACAiSbn2URP33h/UjsByVXQA1H/sb8eNTf4PjPFlRdYp4gAAAJj7Xoxl+16M
ZQAAAAtzc2gtZWQyNTUxOQAAACAiSbn2URP33h/UjsByVXQA1H/sb8eNTf4PjPFlRdYp4g
-----END OPENSSH PRIVATE KEY-----

希望有人可以告诉我发生了什么事。谢谢你

php laravel sftp flysystem
1个回答
0
投票

也许问题是配置中的私钥应该是文件路径,而不是内容。

我在我的应用程序中使用 SFTP:

.env

 SFTP_HOST=xxx.xxx.xxx.xxx
 SFTP_PATH=/folder/on/remote/server
 SFTP_USERNAME=foo
 SFTP_PASSWORD=bar
 SFTP_PORT=22
© www.soinside.com 2019 - 2024. All rights reserved.