gitlab 拉代码提示:Your Account has been blocked. fatal: Could not read from remote repository. 最佳解决方案
今天在脚本服务器上拉取代码,突然发现拉不了代码了,提示:
GitLab: Your account has been blocked.
fatal: Could not read from remote repository.
原因是当时在Linux 上代码拉取,使用的是前同事的账号配置的,这几天他离职了,导致我使用他的账号信息拉取代码失败。
在网上找了一堆解决方案,都解决不了我的问题,反而引入了新的问题,一团糟糕。
然后我就想,我就用最原始的方式,给这台服务器配上我自己账号的拉代码权限不就行了。
然后就找到了如何在linux服务器上配置Git的教程,很快就完美的解决了问题。
步骤如下:
Step 1. git config --global user.name "****" ****替换为自己的用户名,是GitLab的登录用户名;
Step 2. git config --global user.email xxx@***.com,完成1~2步可以使用"cat ~/.gitconfig"查看设置是否生效
Step 3. cd ~/.ssh,如果目录下有文件id_rsa.pub 或 id_dsa.pub,可以手动编辑成自己的sshkey,也可以使用步骤4的命令,生成新的public key;
为了保险起见,还是先备份一下原来的文件: cp id_rsa.pub id_rsa1.pub cp id_rsa id_rsa1
然后再删除这两个文件:
rm id_rsa
rm id_rsa.pub
Step 4. ssh-keygen -t rsa -C "xxx@.com" -- 生成新的public key,xxx@.com对应 .gitconfig文件中的email参数值;
注意,如果没有执行第三步里面的删除原文件的操作,这一步可能不会顺利执行成功, 需要指定其他文件名才能生成。
因为这个成功过程依赖邮箱参数,所以并不能通过改原来的 id_rsa.pub 里面的邮件名就能成功更换账号。
Step 5. id_rsa.pub文件内容就是SSH key,将文件里面的信息复制到GitLab的Add an SSH key页面,新增一个Keys,Title中可以为该key设置一个别名。
Step 6. chmod 700 id_rsa,更改文件的权限,否则在git clone的时候会报“Permissions 0664 for '*******/.ssh/id_rsa' are too open.”的错;
这样就完成了。
最后尝试一下拉代码,可以成功拉取到 master 分支的代码了。
不过,我之前因为尝试网上的其他方案,把一个git 仓库里面的配置弄乱了,拉取不成功,不太好搞,然后我就直接 删除了服务器上整个git目录,然后再git clone 远程代码下来。
rm -rf xxx/projects/xxx
git clone git@xxx.git
因为我这个仓库当时是没有程序在执行的,所以没关系,如果有在线服务正在运行,还是尝试恢复刚才错误的配置吧。
一点点小小的经验,希望能帮到有需要的人。