克隆的GitHub repos要求输入密码,而最初创建的则没有


9

我刚从磁盘上丢失了一堆存储库,所以我从GitHub克隆了它们。现在每次我向GitHub推送内容时都要求输入用户名和密码。那些尚未删除的人不这样做。
我读取的用于删除用户名/密码提示的唯一解决方案是生成ssh密钥。事情是我已经有了一把钥匙,否则我无法在没有提示的情况下推进那些回购,我没有克隆。

我已经查看git config了两个我的存储库,一个可以在没有密码的情况下推送,另一个我已经克隆了。唯一的区别是branch.master.remotebranch.master.merge设置,我没有设置,使git config相同。但提示仍然存在。

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


请参阅help.github.com/ssh-issues并提供更多详细信息。尝试SSH时会发生什么?

Answers:


22

我猜:

您的旧存储库使用SSH远程(git@github.com:ssh://git@github.com/前缀),它使用公钥验证。(事实上​​,Github SSH服务器从不要求输入密码。)

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

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

https:// username @ github.com / username /repo.git

只是

git@github.com: username /repo.git

你甚至可以在你的~/.gitconfiggit中输入一个条目,将远程URL从HTTP或Git转换为SSH。

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.