2023 年 3 月 23 日,GitHub 官方发布了一条公告,称他们的 RSA SSH Host Key 受到了泄露。这一消息引起了广泛的关注和担忧,因为 RSA SSH Host Key 是保障 SSH 连接安全的关键。在本文中,我们将深入探讨这一事件的起因、影响和应对措施。
RSA SSH Host Key 通过使用公钥/私钥对来实现身份验证。当客户端首次连接到 SSH 服务器时,服务器会将其 RSA SSH Host Key 发送给客户端,客户端使用该公钥对该 RSA SSH Host Key 进行验证。如果验证成功,客户端将 RSA SSH Host Key 添加到其本地的“known_hosts”文件中,并将来连接到该服务器时使用该 RSA SSH Host Key 进行身份验证。
区别于本地的公钥/私钥,RSA SSH Host Key 用于验证 SSH 服务器的身份,而公钥/私钥对用于验证客户端的身份,有点像双向校验,可以有效的防止中间人攻击。
Github官方发现RSA SSH Host Key 私钥在一个公共 GitHub 存储库中短暂地公开了。他们立即采取行动控制暴露,并开始调查,以了解根本原因和影响。
在3月24日世界时大约05:00时,出于谨慎,官方更换了用于保护 GitHub.com 的 Git 操作的 RSA SSH 主机密钥。这样做是为了保护用户免受任何对手模仿 GitHub 或通过 SSH 窃听他们的 Git 操作的机会。此密钥不授予对 GitHub 基础设施或客户数据的访问权限。此更改仅影响通过使用 RSA 的 SSH 进行的 Git 操作。
一旦RSA SSH Host Key泄露,攻击者就有可能冒充GitHub服务器,获取用户的敏感信息,进而危及用户的代码和账户的安全。以下是可能对开发者和GitHub用户带来的风险:
总之RSA SSH Host Key泄露可能会对开发者和GitHub用户带来严重的安全风险。
官方是这样回复的:请注意,这个问题不是任何 GitHub 系统或客户信息泄露的结果。相反,这次曝光是我们认为是无意中泄露了私人信息的结果。我们没有理由相信暴露的钥匙被滥用,并采取了这一行动出于充分的谨慎。
并且官方已经更换了RSA SSH Host Key,这将会导致我们的clone、push、pull等操作无法正常运行。
Github官方修改SSH Host Key 以后,会导致用户无法使用SSH连接GitHub.com,
如果在通过 SSH 连接到 GitHub.com 时看到以下消息,请继续阅读
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is SHA256:uNiVztksCsDhcc0u9e8BujQXVUpKZIDTMczCvj3tD2s. Please contact your system administrator. Add correct host key in ~/.ssh/known_hosts to get rid of this message. Host key for github.com has changed and you have requested strict checking. Host key verification failed.
在终端中运行以下命令:
bash# 删除known_hosts文件中github.com条目,从而使下一次连接 github.com 时,客户端会重新验证 github.com 的 RSA SSH Host Key,以确保安全连接
ssh-keygen -R github.com
# 更新本地 SSH 客户端的 known_hosts 文件,以确保在使用 SSH 连接到 GitHub 时,能够正确地验证 GitHub 的身份,并保证连接的安全性
curl -L https://api.github.com/meta | jq -r '.ssh_keys | .[]' | sed -e 's/^/github.com /' >> ~/.ssh/known_hosts
接着就可以愉快的往Github上面拉取、提交代码了。
本文作者:BARM
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!