我尝试过跨域保存数据,但使用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。
感谢
我也遇到同样的问题。我可以从终端连接到远程主机。使用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的最后一部分。>>