在php7.2.9上使用ssh2_connect()方法连接服务器失败

1. 运行环境 PHP7.2.9 Laravel6.x 操作系统windows

2. 在php7.2.9上使用ssh2_connect()方法连接服务器失败,但是在PHP8上是成功的。请问如何解决在7.2.9上发生的问题?

使用ssh通过密钥连接时出现错误

[2023-02-17 17:31:00] local.ERROR: ssh2_connect(): Error starting up SSH connection(-5): Unable to exchange encryption keys#0 [internal function]: Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'ssh2_connect():...', 'E:\\source\\pac\\p...', 967, Array)
#1 E:\source\pac\pac5deploy\app\Utils\CommonUtils.php(967): ssh2_connect('10.0.0.2', 22)
#2 E:\source\pac\pac5deploy\app\Http\Controllers\DeployController.php(690): App\Utils\CommonUtils::getConnection('xxx', 'xxx', 'xxx')
#3 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Routing\Controller.php(54): App\Http\Controllers\DeployController->deploySourceOne(Object(Illuminate\Http\Request))
#4 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Routing\ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction('deploySourceOne', Array)
#5 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Routing\Route.php(219): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\DeployController), 'deploySourceOne')
#6 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Routing\Route.php(176): Illuminate\Routing\Route->runController()
#7 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Routing\Router.php(681): Illuminate\Routing\Route->run()
#8 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(130): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#9 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Routing\Middleware\SubstituteBindings.php(41): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#10 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#11 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Routing\Middleware\ThrottleRequests.php(59): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#12 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Routing\Middleware\ThrottleRequests->handle(Object(Illuminate\Http\Request), Object(Closure), 60, '1')
#13 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#14 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Routing\Router.php(683): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#15 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Routing\Router.php(658): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#16 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Routing\Router.php(624): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#17 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Routing\Router.php(613): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#18 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(170): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#19 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(130): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#20 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#21 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#22 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#23 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#24 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#25 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#26 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode.php(63): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#27 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#28 E:\source\pac\pac5deploy\vendor\fideloper\proxy\src\TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#29 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Fideloper\Proxy\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
#30 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#31 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(145): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#32 E:\source\pac\pac5deploy\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(110): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#33 E:\source\pac\pac5deploy\public\index.php(55): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#34 {main}  {"file":"E:\\source\\pac\\pac5deploy\\app\\Http\\Controllers\\DeployController.php","line":780,"class":"App\\Http\\Controllers\\DeployController","function":"deploySourceOne"}

使用下面的代码

        $pubkeyfile = public_path('key/aa.pub');
        $privateKey = public_path('key/aa.pem');
        $username = 'ubuntu';

        $connection = ssh2_connect('10.0.0.2', 22);
        ssh2_auth_pubkey_file($connection, $username, $pubkeyfile, $privateKey, 'secret');

pub文件的编码

ssh-ed25519 xxxxxx aa

3. 期望能在php7.2.9,可以使用ssh连接到服务器

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

参考这个:stackoverflow.com/questions/458822...

升级:libssh

1年前 评论
Partrick (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!