克隆的 GitHub 存储库要求输入密码,而最初创建的存储库则不需要

克隆的 GitHub 存储库要求输入密码,而最初创建的存储库则不需要

我刚刚从磁盘上丢失了一堆存储库,所以我从 GitHub 克隆了它们。现在每次我将某些内容推送到 GitHub 时,它们都会要求输入用户名和密码。那些尚未删除的存储库不会出现这种情况。
我读到的摆脱用户名/密码提示的唯一解决方案是生成 ssh 密钥。问题是我已经有一个密钥了,否则我无法在没有提示的情况下推送那些我没有克隆的存储库。

我查看了git config我的两个存储库,一个可以不输入密码推送,另一个是我克隆的。唯一的区别是branch.master.remote设置branch.master.merge,我取消了设置,使之git config相同。但提示仍然存在。

我甚至不确定生成新的 ssh 密钥是否可行。我有什么选择?

答案1

我猜:

您的旧存储库使用了 SSH 远程服务器([email protected]:或前缀),它们使用公钥身份验证。(事实上,Github SSH 服务器ssh://[email protected]/绝不要求输入密码。

您的新存储库使用 HTTP 远程 ( ),它仅支持基于密码的https://username@github.com/HTTP 基础身份验证并且不要使用您的 SSH 密钥。

更改远程 URL 以再次使用 SSH。使用git remote set-url或编辑.git/config来执行此操作。替换

https://用户名@github.com/用户名/repo.git

只需

[电子邮件保护]用户名/repo.git

您甚至可以在您的~/.gitconfig条目中告诉 git 将远程 URL 从 HTTP 或 Git 转换为 SSH。

这样,如果您的存储库配置为 HTTP 或 Git 远程,git 将在推送时忽略该设置并改用 SSH。

[url "[email protected]:"]
    pushInsteadOf = git://github.com/
    pushInsteadOf = https://github.com/

insteadOf =也可以设置覆盖拉动推动。)

相关内容