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

时间:2017-10-25 17:13:50

标签: git macos

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

git push thing-staging beta-staging:master

我得到的回应是:

找不到匹配的mac:客户端hmac-md5 ....致命:远程端意外挂断

任何人都有任何关于为什么不再有效或如何找出确切情况的建议?

2 个答案:

答案 0 :(得分:1)

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

您可以使用ssh文件中的MACs配置选项修改~/.ssh/config使用的MAC算法。根据{{​​3}},启用的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手册页。

答案 1 :(得分:0)

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

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