为什么gitlab要求我输入用户凭证?

8cdiaqws  于 2023-02-14  发布在  Git
关注(0)|答案(2)|浏览(348)

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)
8iwquhpp

8iwquhpp1#

您正在使用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可能会要求你提供用户名和密码。它可以使用各种凭据帮助器,这些帮助器也可以 * 存储 * 用户名和/或密码。你可以配置要使用的凭据帮助器,包括“缓存”和“存储”帮助器。使用不同的附加数据。请注意,可用的凭据帮助程序集也会根据底层操作系统的不同而变化。
如果您通过ssh://进行身份验证,则将使用ssh密钥(SSH身份验证)。
如果您使用以user@host:开头的URL,则您使用的是SSH身份验证。

ni65a41a

ni65a41a2#

为了避免每次连接gitlab时都输入凭据,只需创建访问令牌,并更改您的remote origin HTTP URL以使用新的API令牌,如下所示

git remote set-url origin https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.git

相关问题