龙空技术网

openssh版本不同带来的程序不兼容怎么办?

hxliu666 188

前言:

今天大家对“centos不兼容”大约比较注重,兄弟们都想要知道一些“centos不兼容”的相关内容。那么小编也在网上网罗了一些有关“centos不兼容””的相关内容,希望小伙伴们能喜欢,兄弟们快快来了解一下吧!

随着国产化的推进,原来正常使用的程序,也逐渐迁移到了国产平台上面。在国产的平台上做相应的测试工作,让其可以正常地实现预期的目标。于是就出现了文中所描述的情况。

原来的平台:X86+CentOS7,国产平台:Arm+KylinV10SP2。程序是Java开发,在测试远程连接服务器操作命令时出现问题,报错信息如下:

报错信息

那么碰到此问题我们该如何解决呢?

先从错误的信息中,找到关键信息。

关键的报错信息有两个:“Key exchange was not finished, connection is closed.”和“Cannot negotiate, proposals do not match”,可以很清楚的看到是SSH连接失败,那么问题出现在SSH的原因就有很大。

尝试去找CentOS和kylin中SSH的不同点

通过在两个系统中,执行"rpm -qa |grep 'openssh'"。可以清楚的看到CentOS的版本是7,Kylin的版本是8。具体的版本Release Notes,请移步到openssh的官网查看。

查看SSH执行过程中的日志,去看详细的报错信息

Kylin系统的sshd日志,记录到messages日志中,是比较详细的。

报错信息1

报错信息2

通过上面的报错信息,很清楚地看到“no matching key exchange method found”和“no matching MAC found”,两条信息,后面紧跟"Their offer",我们只需要把对应的key和mac写入到ssh配置文件即可。

配置文件路径:/etc/ssh/sshd_config

所涉及到的mac和key。

MACs hmac-sha2-512,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-256-etm@openssh.com,hmac-sha1-96,hmac-sha1,hmac-md5-96,hmac-md5

KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1

红色部分,为报错信息中对应的内容。

文件添加缺失的部分后,重启即可。

再次验证,完美解决此问题。本篇文章是自己的一次错误的排查及解决过程,希望大家在碰到类似的问题时,可以帮助到大家。谢谢~

标签: #centos不兼容