我正在尝试使用laravel通过sftp
上传文件。
这是SFTP配置:
SFTP_HOST=X.X.X.X
SFTP_USERNAME=root
SFTP_PASSWORD=
SFTP_KEY_PATH=/root/usr/es_server.pem
config> filesystems.php
'sftp' => [
'driver' => 'sftp',
'host' => env('SFTP_HOST'),
'port' => 22,
'username' => env('SFTP_USERNAME'),
'root' => '/uploads/',
'privateKey' => env('SFTP_KEY_PATH'),
'visibility' => 'public',
'permPublic' => 0755,
'directoryPerm' => 0755
]
在我的本地计算机上,host
和key
相同,这正常工作。
但是从部署的服务器上,我得到了
"Could not login with username: root, host: x.x.x.x"
登录到已部署的服务器,并通过host
连接sftp
服务器对于root
用户和same key
而言是有效的。
root@dma:~# sftp -i es_server.pem root@x.x.x.x
Connected to x.x.x.x
sftp>
我检查了主机服务器上的防火墙是否阻止了已部署的服务器,但未发现任何阻止。
可能是什么问题?我想念什么?
答案 0 :(得分:1)
最后找到了问题。
该应用程序被拒绝访问SFTP_KEY_PATH
中定义的密钥路径。
我将路径设置为应用程序可以访问密钥的位置。
就我而言,SFTP_KEY_PATH=/var/www/html/dma/es_key.pem
。