连接比较新版本的linux类服务器,是否出现下面这些问题?

或者是openstack新建centos7镜像的时候,无法连接新创建的centos7系统。

 

我百度或者谷歌好像都没有找到答案啊,所以才写这篇文章的。

问题1:

The client has disconnected from the server. Reason:

The server's host key failed to verify. This could mean that the server you are connected to is impersonating the server it claims to be. A connection could not be established

 

问题2:

Key exchange failed. No compatible hostkey. The server supports these methods: ecdsa-sha2-nistp256,ssh-ed25519

问题3:

RSA_public_decrypt failed: error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01

问题4:

Server's host key did not match the signature supplied

OpenStack 云主机 openstack云主机连接不上SecureCRT_ECDSA

问题5:

服务器发送了一个无效的主机密钥

OK了。问题差不多都是这种了。

 

首先说解决的方法

解决的方法,其实都是很通用的,就是添加支持对应ecdsa的交换加密算法。

这里就拿secureCRT举例了:

1.首先CRT需要下载等于或者高于8.1的版本,不然太久,真的没有这个算法

2.然后在CRT新建连接的时候,在这个位置添加支持的算法,然后屏蔽其他的加密算法。

只保留这4种算法就好了,其他的暂时先屏蔽。(图片看不清楚,可以点击放大)

OpenStack 云主机 openstack云主机连接不上SecureCRT_ssh_02

3. 然后就可以连接了。

OpenStack 云主机 openstack云主机连接不上SecureCRT_ECDSA_03

其实我自己的感觉就是,旧版的ssh客户端不支持新版的交换密钥算法吧,

其实我也是不是很清楚的,但是就是这样稀里糊涂解决的,希望帮到大家,

 

下面我再说一下我今天解决一天的过程,首先,第一个突破点就是,用旧版的centos6不能连接openstack创建的

centos7,但是不知道为什么,一开始我测试的时候,我用的是ubuntu和macbook去访问的,可以访问的,

所以我一开始不知道其他系统是不能访问centos7这回事的。

 

然后冥冥之中,我发现了ubuntu和mac,再接受远程服务器的密钥的种类,居然都是ECDSA类型,

然后我刚好又发现了centos7和其他低版本的ssh客户端都只用接受RSA类型,所以这个解决问题

的方向就是更换高版本的ssh客户端了。

 

顺便我再说一下,mac和ubuntu的ssh客户端的版本是7.x的,然后centos6的版本是5.x多的,好像是。

OpenStack 云主机 openstack云主机连接不上SecureCRT_secureCRT_04

OpenStack 云主机 openstack云主机连接不上SecureCRT_centos_05

OpenStack 云主机 openstack云主机连接不上SecureCRT_secureCRT_06

OpenStack 云主机 openstack云主机连接不上SecureCRT_ssh_07