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

Vas*_*tch 4 git ssh github

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

Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

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

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

Ion*_*zău 12

发生这种情况是因为您正在使用SSH URL并且可能未配置您的SSH设置(您还说您的~/.ssh目录为空).

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

git remote -v
Run Code Online (Sandbox Code Playgroud)

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

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

git remote set-url origin https://github.com/your-username/repository.git
Run Code Online (Sandbox Code Playgroud)

替换your-username为您的GitHub用户名和repository存储库名称.另外,origin用你的远程名称替换(如果你正在使用另一个远程名称,可能你不是).

正如@Abizern所提到的,您可以配置SSH密钥并使用SSH URL.这可能会加快您的工作速度而不会让您每次都输入用户名/密码.

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

...或者你可以提供的HTTPS URL密码/令牌,提到这里.

git remote set-url origin https://username:password@github.com/username/repository.git
Run Code Online (Sandbox Code Playgroud)