我尝试从github起源git pull
得到了这个:
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
而不是用户名和密码的promt。我的~/.ssh/
文件夹是空的,所以我很困惑publickey
这里的含义。
git
如何决定是否要求输入用户名/密码?我怎么能强迫他这样做? (我不想出于某种原因使用ssh密钥)
答案 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进行访问。