1。问题总结
今天我尝试使用 VSCode 将更改从本地计算机推送到 Github 上的远程存储库。系统反复挂断。我尝试只拉,然后推,同步,甚至更新远程服务器。但 VSCode 一直挂起并且无法与远程服务器同步。
然后我尝试使用 Git Bash 终端进行推送。它没有挂断电话,而是告诉我:
警告 - 潜在的安全漏洞!服务器的主机密钥与 PuTTY 缓存的主机密钥不匹配。这意味着服务器 管理员已更改主机密钥,或者您已实际连接 到另一台冒充服务器的计算机。新的 rsa2 指纹是:已编辑 如果您期待此更改并信任 新密钥,输入“y”以更新 PuTTY 的缓存并继续 连接。如果您想继续连接但不更新 缓存,输入“n”。如果您想放弃连接 完成后按回车键取消。按下回车键是唯一的 保证安全选择。
2。我尝试过的事情 这些选项(Y、n、Return)在 Bash 中都不起作用。然后我使用 PuTTY 生成一个新的公钥/私钥对,当我尝试推送时出现相同的错误消息。我尝试使用
ssh-add
加载密钥,但它一直告诉我密钥格式无效。我认为这是旧密钥的问题。因此,我随后尝试 ssy-keygen -t rsa -b 4096 -C "[email protected]"
从 Git Bash 生成新密钥。我将该密钥添加到了此存储库的 Github 上的远程服务器,当我尝试通过 Git Bash 推送时,它再次失败。与上面相同的错误。
然后我转到可以访问同一本地驱动器的平板电脑。从那里我打开 VSCode,打开带有存储库的本地文件夹,并尝试从 VSCode 推/拉(同步),从不同的终端重复上面的第一步。当然,另一个终端使用不同的 ssh 密钥连接到同一个远程存储库,这次 VSCode 没有挂断,我能够将更改推送到远程。
3.没有代码可显示,但有几个具体问题
我在 Windows 上运行两个终端。
上次连接到 GitHub 时,本地 SSH 客户端会自动注册 GitHub 的密钥。您看到的警报意味着该密钥现已更改。这可能是由于攻击者使用不同的密钥拦截了您的连接。或者可能是因为自上次连接以来 GitHub 更新了他们的密钥。
如果您不关心连接的安全性而只想连接,则可以通过从known_hosts 文件中删除无效条目来解决此问题。为此,请运行命令ssh-keygen -R github.com
(source)。如果这不起作用,最后的办法是完全删除known_hosts 文件。在 Windows 上,此文件位于
%USERPROFILE%\.ssh
(源)。