为什么gitlab要我输入我的用户凭据?

时间:2017-11-05 19:49:43

标签: git gitlab

git要求我在推送或拉取代码时输入我的gitlab用户凭据。我正在使用gitlab.com,我不是自托管gitlab。

我按照说明设置了我的ssh密钥。我创建了一个密钥,我从〜/ .ssh / id_rsa.pub复制了内容,使用gitlab的用户界面将密钥添加到gitlab,git仍然要求我输入用户名和密码。

git remote -v
origin  https://gitlab.com/<my_user>/<my_repo> (fetch)
origin  https://gitlab.com/<my_user>/<my_repo> (push)

1 个答案:

答案 0 :(得分:10)

您正在使用HTTPS身份验证。切换到基于SSH的URL(在这种情况下,可能是ssh://git@gitlab.com/path/to/repo.gitgit@gitlab.com:path/to/repo.git)。例如:

git remote set-url origin ssh://git@gitlab.com/<user>/<repo>

(或者,如果您对使用配置的编辑器感到满意,可以运行git config --edit并直接在配置文件中编辑URL。确保您选择的任何编辑器以纯文本格式存储文件,而不是任何增强的富文本或UTF-16编码。)

背景

为了将一个Git连接到另一个Git,您可能需要对自己进行身份验证。有几种方法可以做到这一点。 (您是否需要这样做取决于您正在建立的连接类型以及存储库是否公开。)

如果您通过https://进行身份验证,您的Git可能会要求输入用户名和密码。它可以使用各种凭证助手,它们也可以存储用户名和/或密码。您可以配置要使用的凭据帮助程序,包括&#34;缓存&#34;和&#34;存储&#34;助手,使用不同的附加数据。请注意,可用的凭据帮助程序集也会因您的基础操作系统而异。

如果您通过ssh://进行身份验证,则将使用ssh密钥(SSH身份验证)。

如果您使用以user@host:开头的网址,则表示您正在使用SSH身份验证。