为什么github没有问我用户名/密码?

时间:2015-10-07 11:11:03

标签: git github ssh

我尝试从github起源git pull得到了这个:

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

而不是用户名和密码的promt。我的~/.ssh/文件夹是空的,所以我很困惑publickey这里的含义。

git如何决定是否要求输入用户名/密码?我怎么能强迫他这样做? (我不想出于某种原因使用ssh密钥)

2 个答案:

答案 0 :(得分:12)

这是因为您使用了SSH网址,而且可能未配置您的SSH设置(您还说您的~/.ssh目录为空)。

您可以使用以下命令检查当前的远程URL:

git remote -v

如果您想使用基本身份验证(用户名+密码),则必须使用https。

在您的存储库中执行此操作:

git remote set-url origin https://github.com/your-username/repository.git

your-username替换为您的GitHub用户名,将repository替换为存储库名称。另外,将origin替换为您的远程名称(如果您使用其他远程名称,可能不是)。

如上所述@Abizern,您可以configure the SSH keys并使用SSH网址代替。这可能会加快您的工作速度而不会让您每次都输入用户名/密码。

还有其他替代方法可以防止git每次都要求您输入密码。通过设置缓存时间,Here就是其中之一。

...或者您可以在HTTPs网址中提供您的密码/令牌,如上所述here

git remote set-url origin https://username:password@github.com/username/repository.git

答案 1 :(得分:3)

或者,为Github设置SSH密钥。

非常简单 - GitHub网站上有完整的指南。

这样做的另一个好处是允许您在不访问计算机的情况下从GitHub站点撤消密钥。如果您使用的是工作计算机,则非常有用。

已编辑添加

我应该注意GitHub建议使用https进行访问。