WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY

当GitHub更新了RSASSH主机密钥导致识别变化时,用户可以通过删除旧密钥或生成新的ED25519或RSASSH密钥对来解决。推荐使用ED25519密钥,因其更安全且性能更好。生成新密钥涉及ssh-keygen命令,包括指定密钥类型和保存路径,可能需要设置密码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

今天正常 git push 推送代码到 github 的时候,出现了下面的内容:

在这里插入图片描述

原因

发生这种情况是因为在 2023 年 3 月 24 日,GitHub 更新了用于保护 GitHub.com 的 Git 操作的 RSA SSH 主机密钥,因为私钥曾短暂暴露在公共 GitHub 存储库中。如果您在该日期之前记得 GitHub 在 SSH 客户端中的先前密钥指纹,您将收到该消息。

解决办法一

您需要通过运行以下命令删除存储的密钥:

$ ssh-keygen -R github.com

完成后,您可以重新运行 git 您尝试的命令。这时应该询问您是否信任新的 SSH 密钥。输入 yes 即可。

可能不同的客户端询问的次数也不一样,我这边询问了两次,我输入了两次 yes 以后就好了。

参考链接

解决办法二 【推荐】

总结方法二:就是生成并使用新的 ED25519 SSH 密钥。

生成并使用新的 SSH 密钥对

ED25519 SSH 密钥

Practical Cryptography With Go一书建议 ED25519 密钥比 RSA 密钥更安全、性能更好。

由于 OpenSSH 6.5 在 2014 年引入了 ED25519 SSH 密钥,它们应该可以在任何当前操作系统上使用。

您可以使用以下命令创建和配置 ED25519 密钥:

ssh-keygen -t ed25519 -C "<comment>"

带有引号注释 -C(如电子邮件地址)的标志是标记 SSH 密钥的可选方式。
您会看到类似于以下内容的响应:

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519):

第一个是问你密钥存放在哪个路径,默认是:~/.ssh/ 下面,后面又会问你设置密码,一路回车就完事了;

如需指导,请看下面第三项【生成 SSH 密钥对的常见步骤】。

这样你就得到了最新的 ED25519 SSH 密钥了。

RSA SSH 密钥

如果您为 SSH 使用 RSA 密钥,美国国家标准与技术研究所建议您使用至少 2048 位的密钥大小。默认情况下,该 ssh-keygen 命令会创建一个 1024 位 RSA 密钥。

您可以使用以下命令创建和配置 RSA 密钥,如果需要,可替换为推荐的最小密钥大小2048

ssh-keygen -t rsa -b 2048 -C "email@example.com"

带有引号注释 -C(如电子邮件地址)的标志是标记 SSH 密钥的可选方式。
您会看到类似于以下内容的响应:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):

它这个问题也是:问你密钥存放在哪个路径,默认是:~/.ssh/ 下面,后面又会问你设置密码,一路回车就完事了;
如需指导,请看下面第三项【生成 SSH 密钥对的常见步骤】。

注意:如果您有 OpenSSH 版本 7.8 或更低版本,请考虑与编码相关的问题。

生成 SSH 密钥对的常用步骤

无论您是创建ED25519还是RSA密钥,您都是从 ssh-keygen 命令开始的。此时,您将在命令行中看到以下消息(针对 ED25519 密钥):

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):

如果您还没有 SSH 密钥对并且没有生成部署密钥,请接受建议的文件和目录。您的 SSH 客户端将使用生成的 SSH 密钥对,无需额外配置。

或者,您可以将新的 SSH 密钥对保存在不同的位置。您可以分配您选择的目录和文件名。您还可以将该 SSH 密钥对专用于特定主机。

在分配一个文件来保存您的 SSH 密钥后,您将有机会为您的 SSH 密钥设置一个密码:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

如果成功,您将看到 ssh-keygen 命令保存您的身份和私钥的位置的确认信息。

需要时,您可以使用以下命令更新密码:

ssh-keygen -p -f /path/to/ssh_key

每个 SSH 密钥算法的默认文件名

算法公钥私钥
ED25519(首选)id_ed25519.pubid_ed25519
RSA(至少 2048 位密钥大小)id_rsa.pubid_rsa
动态搜索广告(已弃用)id_dsa.pubid_dsa
ECDSAid_ecdsa.pubid_ecdsa

参考文档

Gitlab 文档 - 使用 SSH 密钥全攻略

Github 文档 - 生成新的 SSH 密钥并将其添加到 ssh-agent

——————————【完】——————————

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值