由于工作需要,有九台服务器需要对起openssh升级,在升级成功之后,无法登录,花了很多时间在网上找资料,具体解决方法如下。

由于新的openssh采用了新的算法,所以想要连接服务器,必须使用最新的securecrt 或者是Xshell或者是其他工具。

 当然也可以自己手动用老的算法生成私钥,公钥(公钥是从私钥里面抽取出来的)。

报错

       key-exchange failed

      No compatible hostkey.The server supports  these methods: ssh-ed25519

解决方法:

1     首先清除服务器上的原来的公钥和私钥

 rm -f /etc/ssh/ssh*key
 2.  使用旧的算法生成私钥公钥

    ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
   ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
   ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key

(这里使用了三种算法,只要客服端支持其中一种或者集中就可以)

以上步骤完成后,重启sshd服务,然后再登录(比如crt6.5)就行了。



附: ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ED25519_key   ed25519是最新的算法,客服端不支持就没必要生成私钥。如果客服端为最新的,简直生成,比较速度和安全性都更高