我试图使用与来自PHP联盟的sftp适配器(联赛/飞行系统-sftp)。使用Laravel5.4和版本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的服务器建立SSH连接时,它连接得很好,没有密码提示,所以它使用的是私钥。所以不知道为什么这不管用。
我检查了接收服务器上的安全日志,里面什么都没有。
发布于 2019-07-03 15:51:01
虽然我年纪很大,而且我在这里实施亡灵术,但我遇到了这个问题,而这些修复措施都没有帮助。发生的事情(也可能发生在其他人身上)是,关键类型是openssh而不是rsa,对ssh2::_privatekey_login的调用返回false,导致整个事件失败。如果您的密钥是openssh (由-----BEGIN OPENSSH PRIVATE KEY-----标识为报头),则运行以下命令将其转换为RSA,解决问题。
ssh-keygen -p -m PEM -f [filename here]
发布于 2017-10-04 13:01:40
我也有类似的问题。例外是:
local.ERROR: LogicException: Could not login with username: username, host: xx.xx.xx.xx. 按照供应商\league\flysystem-sftp\src\SftpAdapter中的代码,我发现hostFingerprint总是返回null。之后,我从配置中删除了privateKey => 'path/to/key',例如
'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,
],我连接到服务器。我认为它必须对服务器sftp配置做些什么。现在,我需要测试我的脚本,但我会找出原因。
我希望这有助于找到一个永久的解决办法。
发布于 2018-05-02 03:21:44
我也有同样的问题。我已经将用户实际执行的php更改为用户编写的sftp配置。它正在研究php。我已经改变了用户和组上的php-pfm混和.我没有改变http.conf
https://stackoverflow.com/questions/46534634
复制相似问题