我试着用campbell的flysystem将我的数据跨域保存在同一台服务器上。https://github.com/GrahamCampbell/Laravel-Flysystem
但是我不能使用SFTP让它工作。下面是错误:
Could not login with username: forge即使我指定了privateKey,但它不工作。这是我当前的设置:
'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。
谢谢
发布于 2019-10-02 05:06:35
我也有同样的问题。
从我的终端我可以连接到远程主机。
通过在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/任何人)读取该文件。chown在这方面做得很好。
要在进入紧急模式之前检查密钥,只需尝试ssh而不使用任何代理。
ssh -o IdentitiesOnly=yes -o IdentityFile=/path/to/my/privateKey LOGIN@HOST感谢https://superuser.com/a/268777/911570的这最后一部分。
发布于 2021-04-09 07:47:37
它不接受PPK或PEM作为文件。
您需要将整个密钥放在privateKey字段中
'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'),
],https://stackoverflow.com/questions/33360187
复制相似问题