Git 프로토콜 v2 구성
GitLab Self-Managed의 Git 프로토콜 v2를 설정하고 구성합니다.
Git 프로토콜 v2는 여러 측면에서 v1 와이어 프로토콜을 개선했으며, GitLab에서는 HTTP 요청에 대해 기본으로 활성화되어 있습니다. SSH에서 사용하려면 관리자가 추가로 구성해야 합니다. 새 기능과 개선 사항에 대한 자세한 내용은 Google Open Source Blog 에서 확인할 수 있습니다. 사전 요구 사항 # 클라이언트 측에는 git v2.18.0 이상이 설치되어 있어야 합니다. 서버 측에서 SSH를 구성하려면 sshd 서버가 GIT_PROTOCOL 환경 변수를 받아들이도록 설정해야 합니다. GitLab Helm Charts 와 All-in-one Docker 이미지 를 사용하는 설치에서는 SSH 서비스가 이미 GIT_PROTOCOL 환경 변수를 받아들이도록 구성되어 있습니다. 사용자가 추가로 할 일은 없습니다. gitlab-sshd 가 SSH 트래픽을 처리하는 경우에는 별도의 구성이 필요하지 않습니다. gitlab-sshd 는 GIT_PROTOCOL 환경 변수를 받아들입니다. gitlab-sshd 는 /etc/ssh/sshd_config 를 읽지 않으므로 AcceptEnv 설정은 적용되지 않습니다. OpenSSH를 사용하는 Linux 패키지 설치나 직접 컴파일한 설치에서는 /etc/ssh/sshd_config 파일에 다음 줄을 추가해 서버의 SSH 구성을 직접 갱신합니다. AcceptEnv GIT_PROTOCOL SSH 데몬을 구성한 뒤에는 변경 사항을 적용하기 위해 데몬을 재시작합니다. # CentOS 6 / RHEL 6 sudo service sshd restart # All other supported distributions sudo systemctl restart ssh 사용법 # 새 프로토콜을 사용하려면 클라이언트가 Git 명령에 -c protocol.version=2 구성을 전달하거나, 전역으로 설정해야 합니다. git config --global protocol.version 2 HTTP 연결 # 클라이언트가 Git v2를 사용하는지 확인합니다. GIT_TRACE_CURL=1 git -c protocol.version=2 ls-remote https://your-gitlab-instance.com/group/repo.git 2>&1 | grep Git-Protocol Git-Protocol 헤더가 전송되는 것을 확인할 수 있습니다. 16:29:44.577888 http.c:657 => Send header: Git-Protocol: version=2 서버가 Git v2를 사용하는지 확인합니다. GIT_TRACE_PACKET=1 git -c protocol.version=2 ls-remote https://your-gitlab-instance.com/group/repo.git 2>&1 | head Git 프로토콜 v2를 사용할 때의 응답 예시입니다. $ GIT_TRACE_PACKET=1 git -c protocol.version=2 ls-remote https://your-gitlab-