[해결됨] GitLab 13.4.4에서 13.5.0으로 업그레이드하여 git pull이 SSH 키 인증으로 오류가 발생했습니다.

6468 단어 GitLab
매번 구구도 나오지 않는 작은 재료를 취급하고 있습니다.
본 기사는 개인적인 견해이며, 필자가 소속하는 어떠한 단체에도 관계가 없습니다.

0. GitLab 서버에 git pull로 오류가 발생합니다.



어느 아침 일이었다, 사내의 메시지로 이런 문의가 왔다
今回のGitLabバージョンアップの影響かどうかがわからないのですが、
TortoiseGitを使ってpullすると、添付のエラーが出ます。。。
同じ事象が出ているのは私とK君のみで、他のメンバーはSourceTreeを使っている影響から、正常にpullできているようです。
また、エラーをもとに調べても、これといった明確な原因が出てこず。。。

恐れ入りますが、こちら、ご確認をお願いします

확실히 아침 일찍 GitLab 13.5로의 버전 업이 걸려 있었을 것이다.
이 버전 업의 영향 가능성이 높다. 나는 조사를 시작했다.

1. 현상 확인



우선, 나도 git 커멘드를 시험해보기로 했다. 라고 하는 것도 요전날, GitLab에 제휴하고 있는 LDAP 서버가 장해가 되어, git pull 할 수 없었기 때문이다. 어쩌면 또 LDAP 서버의 결함일지도 모른다.
$ git pull
remote:
remote: ========================================================================
remote:
remote: Internal API unreachable
remote:
remote: ========================================================================
remote:
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

이상한 오류였습니다.
SSH 키 증명서를 사용해 pull했을 경우의 에러이므로, ID/PW를 사용해 https://로 연결한 경우도 확인해 보았다.
$ git pull
Username for 'https://gitlab.example.co.jp': hogehogehoge
Password for 'https://[email protected]':
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), done.
From https://gitlab.example.co.jp/foobar/bazbazbaz
   9d604c2..f3a86a8  master     -> origin/master
Updating 9d604c2..f3a86a8
Fast-forward

문제없이 지나갈 것 같다. .

2. GitLab 로그 확인



GitLab은 Rails로 만들어졌으므로 Rails의 production.log를 확인하십시오.# less /var/log/gitlab/gitlab-rails/production_json.log겉보기에 문제가 없는 것처럼 보이지만, 이하의 에러가 깜박거리는 것 같다.

/var/log/gitlab/gitlab-rails/production_json.log
Filter chain halted as :authenticate_user rendered or redirected
Completed 401 Unauthorized in 15ms (Views: 0.6ms | ActiveRecord: 2.4ms | Elasticsearch: 0.0ms | Allocations: 3263)

3. GitLab 13.5 릴리스를 살펴보십시오



GitLab 13.5 released with Mobile App Sec, Group Wikis, and more! | GitLab
htps // 아보 t. 기 t b. 코 m/레아아세 s/2020/10/22/기 tぁb-13-5-레아세 d/

아래쪽에는 다음과 같은 메시지가 적혀 있었다.


하나는, /var/opt/gitlab/git-data/repositories 의 퍼미션의 이야기로, 다른 하나는 workhose의 소켓 파일의 장소가 바뀐 것 같다. 만약, workhorse의 Socket이 에러라고 하면 패스워드 인증에서도 에러가 될 것. 그렇다면 디렉토리 권한 문제일까요?

4. 업데이트 시 로그를 살펴보기



자동 업데이트 로그는 이메일로 날아 왔으므로 살펴보십시오.
[0m    * link[Link /opt/gitlab/embedded/service/gitlab-shell/config.yml to /var/opt/gitlab/gitlab-shell/config.yml] action create (up to date)

[0m  * link[/opt/gitlab/embedded/service/gitlab-shell/.gitlab_shell_secret] action create (up to date)
  * file[/var/opt/gitlab/.ssh/authorized_keys] action create_if_missing (up to date)
Recipe: gitlab::gitlab-rails[0m
  * storage_directory[/var/opt/gitlab/git-data] action create
    * ruby_block[directory resource: /var/opt/gitlab/git-data] action run (skipped due to not_if)
     (up to date)
  * storage_directory[/var/opt/gitlab/git-data/repositories] action create
    * ruby_block[directory resource: /var/opt/gitlab/git-data/repositories] action run
      [0m
      ================================================================================[0m
      [31mError executing action `run` on resource 'ruby_block[directory resource: /var/opt/gitlab/git-data/repositories]'[0m
      ================================================================================[0m

[0m      Mixlib::ShellOut::ShellCommandFailed[0m
      ------------------------------------[0m
      Failed asserting that mode permissions on "/var/opt/gitlab/git-data/repositories" is 2770
[0m      ---- Begin output of set -x && [ "$(stat --printf='%04a' $(readlink -f /var/opt/gitlab/git-data/repositories) | grep -o '....$')" = '2770' ] ----
/var/opt/gitlab/git-data/repositories 의 허가의 말이 정답인 것 같다.

5. 추측



즉, GitLab을 13.4.4에서 Gitlab 13.5로 버전 업그레이드 할 때
sudo gitlab-ctl reconfigure
했지만, /var/opt/gitlab/git-data/repositories 의 허가를 변경할 수 없고 중도 반단으로 업그레이드 되고 있는 것은 아닐까?

확실히 /var/opt/gitlab/git-data/repositories 디렉토리가 02770 이 아닌 것 같다.
root@gitlab:/var/opt/gitlab/git-data# ls -la
合計 8
drwx------  3 git  root   26  3月 27  2017 .
drwxr-xr-x 24 root root 4096 10月 23 02:53 ..
drwxrwx--- 89 git  git  4096 10月 23 04:19 repositories

6. 수정



권한 수정
chmod 02770 /var/opt/gitlab/git-data/repositories
ls -la /var/opt/gitlab/git-data/

수정 확인

끈적끈적한 비트가 서 있었다.

좋아 보이기 때문에 재구성
sudo gitlab-ctl reconfigure

reconfigure가 통과했는지 확인하고 다시 업데이트하여 GitLab 13.5.1로 설정

7. git pull이 통과하는지 확인



문제 없음

8. 정리



관리하고 있는 GitLab의 2대 중 1대만 이 문제가 되었으므로, 모든 서버에서 일어나는 것은 아닐 것 같다.
omnibus 설치 버전에 의한 것일지도.

좋은 웹페이지 즐겨찾기