You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ssh2_connect报错(-5):无法交换加密密钥,SFTP连接求助

SSH2连接SFTP报错:无法交换加密密钥

问题描述

使用PHP的ssh2_connect函数连接SFTP服务器时触发错误,代码如下:

$connection = ssh2_connect("myHost", 22);

报错信息:

ssh2_connect(): Error starting up SSH connection(-5): Unable to exchange encryption keys

解决方法

  • 指定兼容的加密算法
    服务器与本地ssh2扩展支持的加密算法不匹配是常见诱因,可以在连接时显式指定双方兼容的算法:

    $connection = ssh2_connect("myHost", 22, [
        'hostkey' => 'ssh-rsa',
        'crypt' => ['aes256-cbc', 'aes128-cbc']
    ]);
    

    具体可用算法可查看服务器/etc/ssh/sshd_config中的Ciphers配置项,以及本地ssh2扩展支持的算法列表。

  • 更新相关依赖库
    旧版本的ssh2扩展或OpenSSL库可能存在算法支持缺陷,尝试更新到最新稳定版本。

  • 检查服务器SSH配置
    确认服务器未禁用必要的加密算法,同时验证SSH服务正常运行、22端口可正常访问。

  • 排查网络限制
    防火墙、代理或VPN可能拦截SSH加密交换数据包,确保网络路径未限制SSH流量。

内容的提问来源于stack exchange,提问作者Piyush Shukla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 18:12:12