为什么我不能再运行 git 命令(错误:找不到匹配的 mac:客户端 hmac-md5..)



我没有改变机器上的任何内容。每次更改代码时,我都会运行此命令。

git push thing-staging beta-staging:master

我得到的回应是:

未找到匹配的 Mac:客户端 HMAC-MD5...。致命:远程端意外挂断

任何人都对为什么这不再有效或如何找出到底发生了什么有任何建议?

您的本地 ssh 似乎与您推送到的 git 存储库上使用的 ssh 服务器不兼容。听起来服务器正在运行较旧版本的 ssh 服务器,而您的新客户端已放弃对 hmac-md5 算法的默认支持(因为该算法现在被认为是不安全的)。

您可以使用~/.ssh/config文件中的MACs配置选项修改ssh使用的 MAC 算法。 根据ssh_config手册页,启用的 MAC 的默认列表为:

umac-64-etm@openssh.com,umac-128-etm@openssh.com, 
hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com, 
hmac-sha1-etm@openssh.com, 
umac-64@openssh.com,umac-128@openssh.com, 
hmac-sha2-256,hmac-sha2-512,hmac-sha1

以上内容可能取决于版本。 您需要将 hmac-md5 添加到此列表中,因此您需要在~/.ssh/config中添加以下内容:

MACs umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1,hmac-md5

这会将配置应用于所有 ssh 连接;您也可以使用 Match 指令将其仅应用于托管远程 git 存储库的服务器。 有关详细信息,请参见ssh_config手册页。

大约 6 个月不使用 Mac 后升级 Mac 后,我遇到了这种情况。 我删除了我的id_rsa和is_rsa.pub,并使用ssh-keygen -t rsa重新生成了它们

这有点痛苦,因为我的旧 ssh 密钥在我连接到的一堆远程服务器中,但如果您尝试一下,请记住将您的新 ssh 密钥添加到 GitHub。

最新更新