1. 问题描述

啊~ 修改gitlab本地文件权限导致不能push、pull!千古罪人,整个团队代码提交停滞0.5h,还好解决了

Connection reset by 192.xxx.xx.xx port 8222
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

GitLab: API is not accessible
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

GitLab: Failed to authorize your Git request: internal API unreachable
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

ide gitlab 代码提交 出现add gitlab account gitlab api is not accessible_linux

ide gitlab 代码提交 出现add gitlab account gitlab api is not accessible_git_02


ide gitlab 代码提交 出现add gitlab account gitlab api is not accessible_devops_03

2. 问题起因

兴高采烈:公司先前使用SVN,但是因为新开一个项目,作为GIT的力挺者,同时也是项目负责人,项目也开始用起了gitlab来进行对代码的托管,代码的审查,版本控制用起来也是得心应手,贼舒服~ 大家都其乐融融。

小插曲:但是,手贱的鄙人,把gitlab根的文件夹下所有文件,直接赋予了-R 777 权限,一开始觉得有权限比没权限好,但出事故后,想要拉代码,却发现自己竟然could not read!!。。
过了十分钟,团队里的小弟们就发现了这个问题(毕竟刚reviewer完代码,我就开始手贱,小弟们也准备拉 开发分支的代码合并到自己的分支 T_T)

开始救火:接着就开始定位问题,解决问题

3. 问题解决

小结:gitlab有自己的权限控制,不能再未熟悉的情况下,随便更改!否则就需要折腾一下,还好折腾成功了~
自己维护的gitlab是由docker创建的,首先进入docker之后,第一步是查看错误日志,接着是根据错误日志来进行定位问题,修复问题,最后重启~

3.1 执行pull,并查看错误日志

# 方法1:查看实时的错误信息,例如执行pull,gitlab反馈的错误是什么
# 进入docker所在gitlab
docker exec -it CONTAINER_ID bash
gitlab-ctl tail 
# 方法2:docker进入gitlab,连接到正在运行中的gitlab
docker attach CONTAINER_ID

ide gitlab 代码提交 出现add gitlab account gitlab api is not accessible_gitlab_04

3.2 对pub key设置低权限

find / -name ssh_host_rsa_key  # 找到某个pub key
# 将当前的pub key进行逐一的降权 600

ide gitlab 代码提交 出现add gitlab account gitlab api is not accessible_gitlab_05

3.3 使用gitlab-ctl进行修复

gitlab-ctl reconfigure

估计第2步也是可以通过这个命令解决~

ide gitlab 代码提交 出现add gitlab account gitlab api is not accessible_git_06

3.4 重启gitlab

gitlab-ctl restart

感慨

虽然目前的托管的服务机只是临时搭建的测试机子,再公司了解了GIT的好处后,也开始偏向GIT的使用,也准备加购超大服务器来作为正式的托管服务器;

但想想自己的操作,这种直接将根目录的 “完全放权” 真的挺危险~ 各位兄台还是把本文当做反面例子,虽然解决了,还得好好反思自己。