我正在尝试使用 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,我无法通过。
我使用的一些信息:
我也尝试了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-----
希望有人可以告诉我发生了什么事。谢谢你
也许问题是配置中的私钥应该是文件路径,而不是内容。
我在我的应用程序中使用 SFTP:
.env
SFTP_HOST=xxx.xxx.xxx.xxx
SFTP_PATH=/folder/on/remote/server
SFTP_USERNAME=foo
SFTP_PASSWORD=bar
SFTP_PORT=22