尝试将 git 控制的文件夹/项目的更改推送到 Gitlab 时,我不断收到“主机密钥验证失败”错误。无论出于何种原因,使用 Visual Studio for Mac 都可以正常工作,而且我可以通过 Web 浏览器登录到我的 Gitlab 帐户。
通过删除 ~/.ssh/ 中的任何/所有 Known_hosts 文件,然后在终端中执行
ssh [email protected]
并回答“是”来解决(在重新创建新的known_hosts 文件后,将 [email protected] 重新添加到known_hosts) .
我在known_hosts 中做了一些混乱,这可能导致了问题。
在 Windows 中,我在 MS Visual Studio Code 上从 Git 收到此错误。
我必须从 Git Bash 启动它才能提取我的 git 和 ssh 环境配置。
<your git bash prompt> $ Code
VS Code 应该启动,然后您应该能够通过 ssh 克隆存储库。
我发现我的主页配置文件在 git bash 中加载为“P:\”(因为我工作的 IT 团队......)。
确保您在 git bash 中使用
ssh-keygen
生成了 ssh 密钥,并且 GitLab 知道该密钥。
如果问题仍然存在,请运行
ssh -o StrictHostKeyChecking=no <gitlab-host> uptime
以使 gitlab 受信任。
我在 Windows 的 git 中重新创建了 ssh 密钥,它成功了!
问题仅与known_hosts 文件有关。我已经在此文件中拥有远程服务器的条目。删除远程服务器的现有条目后,我可以按照步骤登录远程服务器,然后在known_hosts文件中添加相同的新条目。
如果删除know_old文件,您将收到此错误日志。
只需打开终端,执行命令“git pull origin main”,
它显示“此密钥未被任何其他名称识别。您确定要继续连接吗?”
输入“yes”,然后shell将修复know_old文件。
现在您可以在 Vscode 上将代码合并到 Github。