解决密钥配对的方案如下:
方法一、最有效的方案:重新配置,验证 SSH 密钥是否已添加到 GitHub
确保您的 SSH 密钥已经正确添加到了 GitHub 账户中。您可以打开命令行控制台(`cmd/powerShell都可以),按照以下步骤操作:
-
生成新的 SSH 密钥对(如果尚未创建):
ssh-keygen -t ed25519 -C "your_email@example.com"
按照提示操作,建议不要设置密码短语以简化自动化流程。
-
将公钥添加到 GitHub:
复制生成的公钥内容:
cat "$env:USERPROFILE\.ssh\id_ed25519.pub"
登录 GitHub,进入 SSH and GPG keys 设置页面,点击“New SSH key”,然后粘贴复制的内容并保存。
-
测试 SSH 连接:
使用以下命令测试是否能够成功连接到 GitHub:
ssh -T git@github.com
如果一切正常,您应该看到一条欢迎消息,表明身份验证成功。
验证问题是否解决
完成上述任一步骤后,请尝试再次执行 Git 操作,例如推送代码或拉取最新更改,以确认问题是否已解决。
方法二:最简单的方案!使用 HTTPS 而不是 SSH (比较省事!不配密钥了)
如果您不想处理 SSH 密钥相关的问题,可以考虑切换到 HTTPS 方式来克隆和推送仓库。这样就不需要管理 SSH 密钥了。要更改现有的远程 URL,请运行以下命令:
git remote set-url origin https://github.com/your-username/program.git
请将 your-username
和 program
替换为实际的 GitHub 用户名和仓库名称。
方法三:更新 known_hosts
文件中的主机密钥
-
打开
known_hosts
文件:
在 Windows 上,known_hosts
文件通常位于用户主目录下的.ssh
文件夹中。您可以使用记事本或其他文本编辑器打开它:notepad %USERPROFILE%\.ssh\known_hosts
我这里没notepad,直接去的文件目录:
C:\Users\Administrator\.ssh\known_hosts
-
移除旧的 GitHub 主机密钥:
根据错误提示,GitHub 的条目位于文件的第一行。您可以手动删除该行,或者在 PowerShell 中运行以下命令来删除第一行:Get-Content "$env:USERPROFILE\.ssh\known_hosts" | Select-Object -Skip 1 | Set-Content "$env:USERPROFILE\.ssh\known_hosts"
-
重新添加 GitHub 主机密钥:
使用以下命令自动获取最新的 GitHub 主机密钥并将其添加到known_hosts
文件中:ssh-keyscan -t rsa,ed25519 github.com >> "$env:USERPROFILE\.ssh\known_hosts"
-
再次尝试推送代码:
现在尝试再次推送代码到 GitHub:git push origin master
!
注意事项
- 保持安全:尽量避免长期禁用
StrictHostKeyChecking
,因为它提供了重要的安全保护。 - 备份配置文件:在修改
.ssh
文件夹中的任何文件之前,建议先备份这些文件,以防出现问题时可以恢复原状。
免费分享个可以将本地仓库与远程仓库关联起来的命令:
git remote set-url origin https://github.com/[your-username]/program.git