git 拉取代码遇到2FA拉取代码失败fatal: Authentication failed
先说2FA是什么,2FA是我们在登录gitlab的时候,输入账号密码后,需要再输入一个随时变动的6位数验证码,如果没开启2FA就没有这个。开启了就会需要输入。
首次登录可以手机下载个阿里云的app扫二维码,然后可以在app上可以看到一个每过十几秒就会变化的验证码。
代码仓库开启了2FA认证,在我们git clone的时候出现如下报错,因为开启后,我们只是单纯的git clone https没法通过FA认证,需要通过access-token去clone
fatal: Authentication failed for 'https://git***/xxx.git'
当然,出现这个报错的原因还有很多,比如
- 输入的账号密码不正确
- 账号没有访问该仓库的权限
- 开启了2FA认证
- 防火墙原因
- git版本过低或者URL不正确(这两种原因很少,一般问题出现在前4个原因里)
问题解决思路
上面我们列举了几种常见git拉取代码失败的原因。
输入账号密码不正确
我们只要可以用账号密码通过web页面登录上gitlab,账号密码就是对的,不需要纠结了
账号没有访问该仓库的权限
登录后,看看我们的角色,只要不是游客身份就可以拉取代码,这个一般需要运维帮忙确认
防火墙原因也需要运维协助排查
2FA是比较常见的原因
我们在setting里选择Access Token
输入我们access的名字,到期时间,以及下面的权限,比如api,read_user这些,如果不知道什么意思可以百度也可以多选
创建完成后我们会获取到一个access-token
然后到我们的机器上执行
- git clone https://oauth2:access-token@git.zuos.com/liwenchao/nav.git
-
- //access-token 替换成我们获取到的access-token字符串
- //git.zuos.com/liwenchao/nav.git 替换成我们实际需要git的工程