【问题标题】:fatal: Authentication failed when trying to clone GitLab project even though "ssh -i" command prints "Welcome to GitLab, [username]"致命:尝试克隆 GitLab 项目时身份验证失败,即使“ssh -i”命令打印“欢迎来到 GitLab,[用户名]”
【发布时间】:2021-02-19 05:27:29
【问题描述】:

虽然我无法克隆项目

ssh -T git@gitlab.com

显示我想要的:Welcome to GitLab, @vagnerwentz!

克隆过程中的错误:

Cloning into 'jobfygo'...
Username for 'https://gitlab.com': vagnerwentz
Password for 'https://vagnerwentz@gitlab.com': 
remote: HTTP Basic: Access denied
fatal: Authentication failed for 'https://gitlab.com/jobfy/backend/jobfygo.git/'

【问题讨论】:

  • 也许this 会有所帮助。

标签: ssh gitlab


【解决方案1】:

我解决了将 SSH 密钥更改为 RSA 密钥的问题。

【讨论】:

  • 但是您也更改了我在回答中提到的网址,对吗?即使是 RSA 密钥也无法与 HTTPS URL 一起使用。
  • 我在 Gitlab 有两个帐户,使用不同的电子邮件(显然哈哈哈),第一个帐户我生成了 SSH 密钥,另一个帐户我使用 SSH 密钥生成了 RSA 密钥,所以我搜索了我创建的文件使用不同的名称第一个帐户是 rsa.pub...,另一个是 jobby,文件的名称。
  • 你所说的“改变”是什么意思?你的意思是“重命名”,还是你用rsa制作了一个新的密钥对?因为当我复制“id_ed25519”并将其重命名为“id_rsa”时,它说:“警告:未受保护的私钥文件!权限太开放了。要求您的私钥文件不能被其他人访问。这个私钥将被忽略。”因此,我是否必须使用 rsa 制作新的密钥对?
  • @questionto42 您的警告/错误仅与读/写访问有关,与密钥类型无关。只需 chmod 600 文件,错误就消失了。关于重命名,它可能是从 OpenSSH 转换为 PEM/RSA:我今天早上做了相反的事情 (stackoverflow.com/a/66237922/6309)。或者它正在重新生成一个新的 RSA 密钥。
  • @VonC 是的,您是对的,如果您重新生成 rsa 密钥对,警告/错误就会消失,并且 chmod 600 可能也会这样做(未经测试)。
【解决方案2】:

首先,您正在使用 HTTPS URL 进行克隆,这意味着您的所有 SSH 设置都是徒劳的。

其次,关于HTTPS,请仔细检查您是否have 2FA activated,因为如果您这样做,您的密码实际上是PAT (Personal Access Token)

第三,如果你确实想使用 SSH,那么使用 SSH URL:

git@gitlab.com:jobfy/backend/jobfygo.git

默认情况下,这样的 url 将使用默认的私有 SSH 密钥 ~/.ssh/id_rsa。 因此,如果您有另一个名称的密钥,您需要:

  • 要么将其重命名为id_rsa
  • 直接指定ssh -i /path/to/second/private/key
  • 使用~/.ssh/config 文件

【讨论】:

  • 如果你的项目不是直接在 gitlab.com 域上,而是类似https://git.mysuborga.myorga.com/projectowner/myproject.git,请使用git clone git@git.mysuborga.myorga.com:projectowner/myproject.git
猜你喜欢
  • 1970-01-01
  • 2020-07-03
  • 2014-10-14
  • 2021-12-29
  • 2020-08-15
  • 2019-03-26
  • 2014-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多