如何在Mac上修复“No Matching Host Key Type Found”

4,619 阅读2分钟

以下是有关如何修复在Mac上尝试使用SSH时,出现“no matching host key type found”错误消息的说明。

当尝试使用macOS将SSH连接到较旧的服务器时,您可能会收到一条SSH错误消息,内容如下:

Unable to negotiate with 123.123.123.123 port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss

要成功连接,OpenSSH必须为每个参数至少有一个相互支持的选项。如果客户端和服务器未能就一组互相参数达成一致,则连接将失败。在这种情况下,客户端和服务器无法就主机密钥算法类型达成一致。服务器提供了ssh-rsa或ssh-dss,OpenSSH支持它们。但由于安全问题,默认情况下不再启用。

自2021年8月20日发布OpenSSH 8.8后,ssh-rsa签名方案已被弃用。

在SSH协议中,“ssh-rsa”签名方案将SHA-1哈希算法与RSA公钥算法结合使用。现在可以以不到5万美元的价格对SHA-1算法执行选择前缀攻击。

如果您可以控制服务器,则应升级OpenSSH版本。但如果您需要立即访问服务器,有几种方法可以解决此问题......

最简单的方法
第一步

重新尝试SSH连接,将以下内容添加到命令行:

ssh -oHostKeyAlgorithms=+ssh-rsa username@123.123.123.123

step1.avif

或者,您可以按照以下步骤使该选项持久化......

持久化方案
第一步

打开新的终端窗口。

term.png

第二步

输入sudo nano ~/.ssh/config,然后在出现提示时,输入您的管理密码。

step2.avif

第三步

将下面两行添加到配置文件中,将123.123.123.123替换为要连接的服务器的IP。

Host 123.123.123.123
HostKeyAlgorithms +ssh-rsa

step3.avif

第四步

按Control+X退出。当要求保存修改的缓冲区时,输入Y。 step4.avif 单击返回,确认要写入的文件名。 step4-2.avif

第五步

现在,您可以像往常一样通过SSH连接到服务器。

ssh username@123.123.123.123

step5.avif

原文链接:How to Fix 'No Matching Host Key Type Found' on Mac