Mac: Unable to negotiate with x.x.x.x port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
时间:2020-02-23 14:45:03 来源:igfitidea点击:
使用最新的macOS Sierra 10.12版本,您可能已经观察到连接到运行SSH的服务器或者网络设备的问题。
请注意,本文不一定适用于macOS,而是适用于任何具有最新OpenSSH v7的运行OS。
由于最新的OpenSSH版本,一些较旧的(旧式)加密算法已从默认设置中删除,因此默认情况下已删除。
显然,正确的做法是使远程设备运行更新版本的OpenSSH,但不幸的是,这并非总是可能。
幸运的是,您可以通过将参数传递给SSH客户端命令来强制协商这些旧选项。
您基本上需要在算法后面附加以下选项:
-o KexAlgorithms=+
以下是一些示例...
Unable to negotiate with 10.20.10.1 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
在这种情况下,命令将是:
ssh -p22 -o KexAlgorithms=+diffie-hellman-group1-sha1 [email protected]
在某些情况下,远程服务器要求组合多种加密算法。
如果最初指定一个特定的算法,然后抱怨另一个算法的提供,您将很容易知道这一点。
在这种情况下,您需要再次附加以下选项:
ssh -p22 -o KexAlgorithms=+diffie-hellman-group1-sha1 -o HostKeyAlgorithms=+ssh-dss [email protected]
注意:也可以查询远程服务器以查看使用了什么配置,如下所示:
ssh -p22 -G user<@IP_Address>