尽管我设置了SSH身份验证,为什么github会问我用户名/密码?

Ale*_*lex 4 git ssh github

我已按照这些说明为github设置SSH密钥.但现在当我这样做

> git pull
Username for 'https://github.com': 
Run Code Online (Sandbox Code Playgroud)

在本地计算机上的存储库中,我已经从公共SSH密钥,我仍然被要求输入用户名/密码.我错过了一步吗?

Mel*_*ius 10

您需要告诉Git使用SSH协议而不是HTTPS.在GitHub上的存储库页面上,选择Clone or DownloadUse SSH.您将在表单中获得SSH协议的URL git@github.com:<user>/<repo>.git.

然后在工作树中运行以下命令,告诉Git使用此URL而不是当前的URL:

git remote set-url origin git@github.com:<user>/<repo>.git
Run Code Online (Sandbox Code Playgroud)

GitHub帮助中也对此进行了解释.

上述方法不会再次克隆存储库,只会更改用于本地存储库和GitHub之间未来同步的通信协议.

或者,你可以使用git remote add <new-remote-name> <url>然后设置一个新的远程,git pull <new-remote-name>但Git会将这两个协议作为单独的遥控器跟踪,所以我不建议这样做.


mee*_*ern 10

这也可以通过编辑项目的 git 配置文件来完成。打开您最喜欢的编辑器.git/config并找到现有的 URL:

[remote "origin"]
    url=https://github.com/<usr>/<repo>.git 
Run Code Online (Sandbox Code Playgroud)

改成:

[remote "origin"]
    url=git@github.com:<usr>/<repo>.git 
Run Code Online (Sandbox Code Playgroud)

就个人而言,我发现这有点容易记住,但可能会更加“内部”。