关于ssh2_auth_pubkey_file使用报错的问题2
问题
继之前的问题解决了之后,换了一台其他设备,又报了其他错误,记录一下,报错大概如下:
PHP Warning: ssh2_connect(): Error starting up SSH connection(-5): Unable to exchange encryption keys in /var/www/test.php on line 15
PHP Warning: ssh2_auth_pubkey_file() expects parameter 1 to be resource, boolean given in /var/www/test.php on line 16
根据提示信息搜索了一下,也对比了一下两台设备的区别,发现这台设备升级过openssh
,版本为OpenSSH_8.8p1, OpenSSL 1.0.2g 1 Mar 2016
网上的说法大多都是说高版本不再支持ssh-rsa,ssh-dss
,于是ssh2_connect
的时候尝试各种算法的配置,依然报错…
另外看文档ssh2_connect
的hostkey
参数支持的可选值也就只有ssh-rsa and ssh-dss
解决方案:
最后又看到一个方案升级下libssh2
库,抱着试试看的心态,又重新编译安装了一下libssh2
,之前的安装的版本是1.8.0-2.1build1
,升级到libssh2-1.11.0
,然后重新编译php ssh2
扩展,成功解决!
# php --ri ssh2
ssh2
SSH2 support => enabled
extension version => 1.4
libssh2 version => 1.11.0
banner => SSH-2.0-libssh2_1.11.0
参考
stackoverflow.com/questions/458822...
www.boydata.com/post/243.html
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: