首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel Flysystem SFTP连接

Laravel Flysystem SFTP连接
EN

Stack Overflow用户
提问于 2015-10-27 12:52:41
回答 2查看 7.4K关注 0票数 3

我试着用campbell的flysystem将我的数据跨域保存在同一台服务器上。https://github.com/GrahamCampbell/Laravel-Flysystem

但是我不能使用SFTP让它工作。下面是错误:

代码语言:javascript
复制
   Could not login with username: forge

即使我指定了privateKey,但它不工作。这是我当前的设置:

代码语言:javascript
复制
   'sftp'      => [
        'driver'     => 'sftp',
        'host'       => 'xxxx.xxx.xxxx',
        'port'       => 22,
        'username'   => 'forge',
        'password'   => 'xxxxxxxxx',
        'privateKey' => '~/putty/privateKey.ppk',
        'root'       => 'cdn.example.com/public',
        'timeout'    => 10
    ],

我已经安装了

代码语言:javascript
复制
   "league/flysystem-sftp": "~1.0"

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

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

谢谢

EN

回答 2

Stack Overflow用户

发布于 2019-10-02 05:06:35

我也有同样的问题。

从我的终端我可以连接到远程主机。

通过在filesystems.conf中指定密码或privateKey的内容,这也可以工作,但不可能将privateKey设置为路径。

经过几次尝试,我终于解决了这个问题。

我的laravel 5.8 filesystems.conf

代码语言:javascript
复制
'sftp' => [
    'driver' => 'sftp',
    'host' => 'HOST',
    'username' => 'LOGIN',
    'privateKey' => base_path() . '/ssh/myPrivateKey',
    'root' => env('MY_PATH'),
    'timeout' => 30,
],

我做的一件愚蠢的事是用

代码语言:javascript
复制
'privateKey' => 'ssh/myPrivateKey',

并且相信Laravel会找到它。

将其替换为

代码语言:javascript
复制
'privateKey' => base_path() . '/ssh/myPrivateKey',

一切都很顺利:)

接下来要做的是允许您的apache用户(www-data/nobody/任何人)读取该文件。chown在这方面做得很好。

要在进入紧急模式之前检查密钥,只需尝试ssh而不使用任何代理。

代码语言:javascript
复制
ssh -o IdentitiesOnly=yes -o IdentityFile=/path/to/my/privateKey LOGIN@HOST

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

票数 1
EN

Stack Overflow用户

发布于 2021-04-09 07:47:37

它不接受PPK或PEM作为文件。

您需要将整个密钥放在privateKey字段中

代码语言:javascript
复制
'sftp' => [
    'driver' => 'sftp',
    'host' => env('SFTP_HOST'),
    'port' => env('SFTP_PORT', 22),
    'username' => env('SFTP_USERNAME'),
    'privateKey' => '-----BEGIN RSA PRIVATE KEY-----
MIIG4gIBAAKCAYEAxXDGR43F1xLoaJBC3hLC5RECX89Ost5rVTBsefj5vnoms8V2
RoUGWIZrzK3v8u+ALcfdcAIRFrFd4XM4KeDUBaRQ6a8hc8qFowF7SMATfVnVjInW
',
    'root' => env('SFTP_ROOT'),
],
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33360187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档