Git Bash在使用SSH进行推送时要求输入用户凭据

11

我在Codaset网站上创建了一个Git项目并成功实施。我使用SSH在我的Codaset和本地仓库之间进行通信。当我从Git Bash进行推送时,Git Bash会要求我输入用户名凭据。尽管Git Bash成功执行推送,但每次执行推送时都必须输入用户凭据,这很繁琐。

我查看了许多博客和建议来解决这个问题,但都没有成功。此外,我尝试使用PuTTY。我的问题是:

  1. 如何解决这个问题?
  2. 或者,我可以打开一些调试来至少识别Git Bash为什么要求我的用户凭据的准确原因吗?
4个回答

18

在你的终端中输入:

git config -l

这将显示您存储库的配置信息。查看行 remote.origin.url。从您所描述的内容来看,它应该是:https://github.com/Username/project.git

这意味着它正在使用HTTP协议而不是SSH!我也遇到了这个问题 :) 不过有一个简单的解决方法!

只需在终端中执行此操作:

git config remote.origin.url git@github.com:Username/project.git

它应该照顾好事情!


2
GitHub最近更改了它们的默认说明。当您创建一个新的repo时,它建议您使用他们的Mac应用程序,并跟随http配置设置而不是ssh。 - Micah Alcorn
我正在使用Gitlab,我的使用ssh,但仍然不断要求输入密码。 - pal4life
1
有帮助。设置URL的备用命令是git remote set-url origin git@github.com:username/project.git - rojobuffalo

3

谢谢。关于链接,我根据Codaset的指示创建了一个公钥并将其上传到Codaset网站。如何确定我是否实际上正在使用Git Bash中的公钥? - user32585
使用-v直接SSH到远程站点。它会告诉您正在使用哪些身份验证密钥。 - Mauvis Ledford

1

Git文档是最好的:). 首先在Git Bash - Windows中尝试这些步骤,然后查看其他网站:

对于Eclipse:EGit和GitHub出现“认证失败”错误。


1

您需要设置SSH公钥身份验证。我在这个问题的答案中描述了这个过程。您可以在Git Bash中使用它。


谢谢。请问您能告诉我在Git Bash中设置正确配置所需使用的确切命令是什么吗? - user32585
如果您已经将公钥上传到Codaset网站,则必须确保相应的私钥放置在主机的~/.ssh/文件夹下。在Git Bash下运行cd ~; mkdir .ssh; cp private_key ~/.ssh/id_rsa - beduin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接