php - Laravel Flysystem sftp 权限被拒绝

标签 php laravel-5 ssh flysystem

我正在尝试将 Laravel Flysystem 与来自 PHP League (league/flysystem-sftp) 的 sftp 适配器一起使用。使用 Laravel 5.4 和 Flysystem 3.7 版。

当我尝试将文件放在服务器上时,我收到消息:

无法连接到 someadress.com:22。错误 13。权限被拒绝

代码如下:

$box = new Filesystem(new SftpAdapter(Config::get('flysystem.connections.sftp')));
$box->put('test.txt', 'bar');

以及配置中的连接详细信息:

'sftp' => [
     'driver'     => 'sftp',
     'host'       => 'someadress.com',
     'port'       => 22,
     'username'   => 'someuser',
     'password'   => 'ArndomPa55',
     'privateKey' => '/home/user/.ssh/id_rsa',
     'root'       => '/var/www/html/site/box/',
     'timeout'    => 20,
 ],

当我从运行它的服务器建立 SSH 连接时,它连接正常,没有密码提示,所以它使用的是私钥。所以不确定为什么这不起作用。

我检查了接收服务器上的安全 日志,里面什么也没有。

最佳答案

虽然我已经非常老了,而且我在这里从事死灵法术,但我遇到了这个问题,但这些修复都没有帮助。发生的事情(也可能发生在其他人身上)是 key 类型是 openssh 而不是 rsa 并且对 ssh2::_privatekey_login 的调用返回 false,导致整个事件失败。如果您的 key 是 openssh(由 -----BEGIN OPENSSH PRIVATE KEY----- 作为 header 标识),请运行以下命令将其转换为 RSA,从而解决问题。

ssh-keygen -p -m PEM -f [这里是文件名]

关于php - Laravel Flysystem sftp 权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46534634/

相关文章:

php - 查询生成器中的查询关系和分组依据

php - 使用 PHP 获取 Linux 屏幕 session

java - JSch SFTP 代码在传输文件时挂起

php - 将元素置于另一个元素的右侧

php - 如果 cookie 设置为同一域上的所有子域,则删​​除 cookie 不起作用

php - 按日期排序 XML 数据输出

php - session_start 无法创建 session ID

php - mysql 匹配精确短语不起作用

java - 如何通过 SSH 传输所有 RMI 流量

php - 为什么我可以在这里查询一个int而不是一个字符串? PHP MySQL 数据类型