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

Jes*_*s H 4 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)
Run Code Online (Sandbox Code Playgroud)

tor*_*rek 15

您正在使用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>
Run Code Online (Sandbox Code Playgroud)

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

背景

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

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

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

如果您使用以...开头的URL,user@host:则使用SSH身份验证.

  • 此命令可用于将 HTTPS URL 更改为 SSH:“git remote git@gitlab.com:myuser/myrepo.git” (3认同)