Gerrit用ssh拉取代码报出问题

Unable to negotiate with 10.216.90.129 port 29418: no matching key exchange method 
found. Their offer: diffie-hellman-group1-sha1

问题原因:并不仅仅出现Mac OS系统,在最新的OpenSSH版本(7.0及更高版本)中,一些老旧的加密算法已经默认不可用了。当客户端使用SSH连接到服务器时,如果老旧算法不可用,客户端和服务器无法就密钥交换算法达成一致而导致连接失败,报出上面的错误提示。目前服务器只提供了一种方法:diffie-hellman-group1-sha1。OpenSSH支持此方法,但是默认没有启用,我们要做的就是去启用它。KexAlgorithms用于生成每个连接密钥的密钥交换方法,host下加入KexAlgorithms=+diffie-hellman-group1-sha1,含义就是使用KexAlgorithms启用diffie-hellman-group1-sha1密钥交换算法。

解决方案:

修改ssh config文件

sudo vim /etc/ssh/ssh_config

在host下加入

KexAlgorithms=+diffie-hellman-group1-sha1

你可能感兴趣的:(Gerrit用ssh拉取代码报出问题)