今天一台很老的服务器出问题了。需要登录到机器上进行维护。可是登录时发现,以前设置好的ssh公钥登录,居然登不上去了。显示错误:
~$> ssh user1@192.168.1.11
Unable to negotiate with 192.168.1.11 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
看错误,是因为客户端和服务器的密钥交换不匹配。服务器支持的密钥交换方法有:diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 这三个。意思是需要指定好相同的交换方法。但是如何指定呢?
在网上找了半天才找到如何设置这个参数:-o kexAlgorithms=。一般情况设置好了就可以解决这个问题。
命令如下:
~$> ssh -o kexAlgorithms=+diffie-hellman-group-exchange-sha1 user1@192.168.1.11
Last login: Fri Jun 24 09:59:13 2022 from 192.168.54.16
Welcome to T11
[user1@T11~]$
登录进来第一件事就是赶紧备份这个服务器内容。重新安装新系统。避免它再闹妖。。。