Laravel Flysystem SFTP连接

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

我尝试过跨域保存数据,但使用Campbell的flysystem在同一服务器中。 https://github.com/GrahamCampbell/Laravel-Flysystem

但是我无法使用SFTP使其正常工作。这是错误:

   Could not login with username: forge

即使我指定了私有密钥,也无法正常工作。这是我当前的设置:

   'sftp'      => [
        'driver'     => 'sftp',
        'host'       => 'xxxx.xxx.xxxx',
        'port'       => 22,
        'username'   => 'forge',
        'password'   => 'xxxxxxxxx',
        'privateKey' => '~/putty/privateKey.ppk',
        'root'       => 'cdn.example.com/public',
        'timeout'    => 10
    ],

我已经安装了

   "league/flysystem-sftp": "~1.0"

是否有其他我想念的使用flysystem的设置,或者是否有更好的方法将上传的文件保存到另一个域?

*更新:我正在使用Laravel Forge。

感谢

php laravel
1个回答
0
投票

我也遇到同样的问题。我可以从终端连接到远程主机。使用filesystems.conf中指定的密码或privateKey的内容也可以,但是无法通过将privateKey设置为路径来使其生效。经过一番尝试,我终于解决了。我的laravel 5.8 filesystems.conf

'sftp' => [
    'driver' => 'sftp',
    'host' => 'HOST',
    'username' => 'LOGIN',
    'privateKey' => base_path() . '/ssh/myPrivateKey',
    'root' => env('MY_PATH'),
    'timeout' => 30,
],

我正在做的愚蠢的事情是使用

'privateKey' => 'ssh/myPrivateKey',

并相信Laravel会找到它的。替换为

'privateKey' => base_path() . '/ssh/myPrivateKey',

一切都很好:)

下一步是允许您的apache用户(www-data / nobody / whatever)读取此文件。 chown对此很有帮助。

要在进入紧急模式前检查密钥,请尝试在没有任何代理的情况下进行ssh。

ssh -o IdentitiesOnly=yes -o IdentityFile=/path/to/my/privateKey LOGIN@HOST

感谢https://superuser.com/a/268777/911570的最后一部分。>>

© www.soinside.com 2019 - 2024. All rights reserved.