omnibus-gitlab
패키지와 관련된 암호화 세부정보
Offering: Self-managed
GitLab은 제공하는 다양한 OS 패키지를 공유하기 위해 packagecloud 인스턴스를 사용하며, 이러한 패키지의 무결성을 보장하기 위해 다양한 암호화 방법을 사용합니다. 이 페이지는 이러한 방법에 대한 세부정보를 제공하기 위한 것입니다.
패키지 저장소 메타데이터 서명 키
GitLab packagecloud 인스턴스의 apt 및 yum 저장소는 메타데이터에 서명하기 위해 GPG 키를 사용합니다. 이 키는 설치 지침에 명시된 repo 설정 스크립트에 의해 자동으로 설치됩니다.
현재 키
키 속성 | 값 |
---|---|
이름 | GitLab B.V. |
이메일 | packages@gitlab.com |
주석 | 패키지 저장소 서명 키 |
지문 | F640 3F65 44A3 8863 DAA0 B6E0 3F01 618A 5131 2F3F |
만료 | 2026-02-27 |
이 키는 2020-04-06부터 활성화되어 있습니다. 이미 GitLab apt/yum 패키지 저장소를 구성한 기존 사용자는 apt/yum이 불일치에 대해 불만을 제기하지 않고 이러한 저장소에서 패키지를 설치를 계속하기 위해 이 키를 다시 가져와 신뢰할 수 있는 키링에 추가해야 합니다. 이에 대한 설명은 아래에 있습니다.
이 키의 만료는 2024-03-01에서 2026-02-27로 연장되었습니다.
2024-03-01
에 만료에 대한 불만이 발생하면, 만료 연장 후 키 업데이트에서 업데이트된 공개 키 내용을 통합하는 단계를 수행하세요.
만료 연장 후 키 업데이트
Debian 기반 배포판의 경우:
PackageCloud는 일반적으로 apt-key
를 사용했으며, 이는 앞으로 더 이상 사용되지 않을 예정입니다. TurnKey Linux와 같은 일부 배포판에서 수동으로 설치하거나 구성한 저장소는 이미 Debian 패키지 소스 목록 내에서 signed-by
지원을 사용하고 있습니다.
-
apt-key
또는signed-by
기능을 사용 중인지 확인하세요:grep 'deb \[signed-by=' /etc/apt/sources.list.d/gitlab_gitlab-?e.list
- 이
grep
이 어떤 줄을 반환하면,signed-by
기능을 사용하고 있는 것입니다. 이것은 어떤apt-key
사용보다 우선합니다. - 이
grep
이 줄을 반환하지 않으면,apt-key
기능을 사용하고 있는 것입니다.
- 이
-
signed-by
의 경우, 다음 스크립트(루트로 실행)를 사용하여 GitLab 저장소의 공개 키를 업데이트합니다:awk '/deb \[signed-by=/{ pubkey = $2; sub(/\[signed-by=/, "", pubkey); sub(/\]$/, "", pubkey); print pubkey }' /etc/apt/sources.list.d/gitlab_gitlab-?e.list | \ while read line; do curl -s "https://packages.gitlab.com/gpg.key" | gpg --dearmor > $line done
-
apt-key
의 경우, 다음 스크립트(루트로 실행)를 사용하여 GitLab 저장소의 공개 키를 업데이트합니다:apt-key del 3F01618A51312F3F curl -s "https://packages.gitlab.com/gpg.key" | apt-key add - apt-key list 3F01618A51312F3F
RPM 기반 배포판의 경우:
Yum과 Dnf 사이에는 약간의 차이가 있지만, 기본적인 구성은 동일합니다.
-
저장소 키링에서 기존 키를 제거합니다:
for pubring in /var/cache/dnf/*gitlab*/pubring do gpg --homedir $pubring --delete-key F6403F6544A38863DAA0B6E03F01618A51312F3F done
-
저장소 데이터/캐시를 업데이트하여 키 확인을 요청합니다:
dnf check-update
2020-04-06 이전에 새로운 키 가져오기
# 새로운 키 다운로드
curl "https://gitlab-org.gitlab.io/omnibus-gitlab/gitlab_new_gpg.key" -o /tmp/omnibus_gitlab_gpg.key
# 키 가져오기
## Debian/Ubuntu/Raspbian
sudo apt-key add /tmp/omnibus_gitlab_gpg.key
# CentOS/OpenSUSE/SLES
sudo rpm --import /tmp/omnibus_gitlab_gpg.key
2020-04-06 이후에 새로운 키 가져오기
최신 저장소 서명 키를 가져오기 위해 사용자는 설치 페이지에 언급된 바와 같이 GitLab 저장소를 추가하는 데 사용되는 curl
명령을 다시 실행할 수 있습니다.
이렇게 하면 새로운 키를 가져와서 사용자의 키링에 추가할 수 있습니다.
또는 사용자는 다음 명령을 사용하여 수동으로 새로운 키를 가져오고 추가할 수 있습니다:
# 새로운 키 다운로드
curl "https://packages.gitlab.com/gpg.key" -o /tmp/omnibus_gitlab_gpg.key
# 키 가져오기
## Debian/Ubuntu/Raspbian
sudo apt-key add /tmp/omnibus_gitlab_gpg.key
# CentOS/OpenSUSE/SLES
sudo rpm --import /tmp/omnibus_gitlab_gpg.key
644
여야 합니다.다음 명령을 실행하여 권한을 설정할 수 있습니다: chmod 644 <keyfile>
.
이전 키
Sl. No. | 키 ID | 만료 날짜 |
---|---|---|
1 | 1A4C 919D B987 D435 9396 38B9 1421 9A96 E15E 78F4 |
2020-04-15 |
패키지 서명
이 문서에서는 GitLab에서 생성한 패키지의 서명을 확인하는 방법을 수동 및 자동으로 지원되는 경우 제공할 것입니다.
RPM 기반 배포판
RPM 형식은 GPG 서명 기능의 전체 구현을 포함하고 있으므로, 해당 형식을 기반으로 한 패키지 관리 시스템과 완전히 통합되어 있습니다.
서명 확인 방법은 두 가지가 있습니다.
GitLab 공개 키가 존재하는지 확인
RPM 기반 배포판에서 패키지를 확인하려면, GitLab, Inc. 공개 키가 rpm
도구의 키 체인에 있는지 확인해야 합니다.
rpm -q gpg-pubkey-f27eab47-60d4a67e --qf '%{name}-%{version}-%{release} --> %{summary}'
이 명령은 공개 키에 대한 정보 또는 gpg-pubkey-f27eab47-60d4a67e is not installed
를 출력합니다.
키가 존재하지 않으면 다음 단계를 수행하십시오:
rpm --import https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
서명 확인이 활성화되어 있는지 확인
기존 설치에서 패키지 서명 확인이 활성화되어 있는지 확인하는 가장 간단한 방법은 사용 중인 저장소 파일의 내용을 비교하는 것입니다.
- 저장소 파일이 존재하는지 확인:
file /etc/yum.repos.d/gitlab_gitlab-ce.repo
-
서명 확인이 활성화되어 있는지 확인:
grep gpgcheck /etc/yum.repos.d/gitlab_gitlab-ce.repo
의 출력은 아래와 같아야 합니다.repo_gpgcheck=1 gpgcheck=1
또는
repo_gpgcheck=1 pkg_gpgcheck=1
파일이 존재하지 않으면 해당 저장소가 설치되지 않은 것입니다. 파일이 존재하지만 출력에 gpgpcheck=0
가 표시되면, 해당 값을 편집하여 활성화해야 합니다.
자동 검증 활성화
rpm
도구 및 관련 패키지 관리자(yum
, zypper
)는 개입 없이 패키지의 자동 검증을 직접 지원합니다. 서명된 패키지가 사용 가능해진 후 자동화된 리포지토리 구성 스크립트를 사용했다면 추가적인 단계가 필요하지 않습니다. 서명된 패키스가 출시되기 전에 설치한 경우, 필요한 변경을 하거나 설치 페이지에 있는 자동화된 리포지토리 구성 스크립스를 다시 실행할 수 있습니다.
Yum (RedHat, CentOS)
-
패키지의 GPG 검사를 활성화합니다.
sudo sed -i'' 's/^gpgcheck=0/gpgcheck=1/' /etc/yum.repos.d/gitlab_gitlab-ce.repo
-
패키지 서명 공개 키를
gpgkey
목록에 추가합니다:/etc/yum.repos.d/gitlab_gitlab-ce.repo
를 편집하여gpgkey
를 다음과 같이 변경합니다:gpgkey=https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
-
yum
에게 리포지토리의 캐시를 새로 고치라고 지시합니다.sudo yum -q makecache -y --disablerepo='*' --enablerepo='gitlab_gitlab-ce'
Zypper (SuSE/SLES)
-
패키지의 GPG 검사를 활성화합니다.
sudo sed -i'' 's/pkg_gpgcheck=0/pkg_gpgcheck=1/' /etc/zypp/repos.d/gitlab_gitlab-ce.repo
-
패키지 서명 공개 키를
gpgkey
목록에 추가합니다:/etc/zypp/repos.d/gitlab_gitlab-ce.repo
를 편집하여gpgkey
를 다음과 같이 변경합니다:gpgkey=https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
-
zypper
에게 리포지토리를 새로 고치고 키를 가져오라고 지시합니다.sudo zypper --gpg-auto-import-keys refresh gitlab_gitlab-ce
수동 검증
공개 키가 확인되면 RPM 패키지를 rpm --checksig gitlab-xxx.rpm
명령어로 수동 검증할 수 있습니다.
DEB 기반 배포판
DEB 형식은 공식적으로 패키지 서명을 위한 기본 및 포함 방법을 포함하고 있지 않습니다. GitLab에서는 대부분의 배포판에서 기본적으로 활성화되어 있지 않지만, 충분히 문서화된 debsig
표준을 구현하기로 선택했습니다.
수동 검증
debsigs
로 서명된 DEB 패키지의 수동 검증은 두 가지 방법으로 수행할 수 있습니다: 필요한 debsigs
정책 및 키링을 구성한 후 debsig-verify
를 사용하거나, GnuPG를 사용하여 포함된 _gpgorigin
파일을 수동으로 확인하는 것입니다.
GnuPG로 수동 검증
debsig-verify
패키지는 사용자가 설치하고 싶지 않을 수 있는 많은 종속성을 가지고 있습니다. debsig-verify
및 종속성을 설치하지 않고 debsigs
기반 서명을 검증하기 위해 사용자는 다음과 같은 수동 단계를 완료할 수 있습니다:
-
패키지 서명 공개 키를 다운로드하고 가져옵니다.
curl -JLO "https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg" gpg --import gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
-
서명 파일(
_gpgorigin
)을 추출합니다.ar x gitlab-ce-xxx.deb _gpgorigin
-
서명이 내용과 일치하는지 검증합니다.
ar p gitlab-xxx.deb debian-binary control.tar.gz data.tar.gz | gpg --verify _gpgorigin -
최종 명령어의 출력은 다음과 같이 나타나야 합니다:
$ ar p gitlab-xxx.deb debian-binary control.tar.gz data.tar.gz | gpg --verify _gpgorigin -
gpg: Signature made Tue Aug 01 22:21:11 2017 UTC
gpg: using RSA key DBEF89774DDB9EB37D9FC3A03CFCF9BAF27EAB47
gpg: issuer "support@gitlab.com"
gpg: Good signature from "GitLab, Inc. <support@gitlab.com>" [unknown]
Primary key fingerprint: DBEF 8977 4DDB 9EB3 7D9F C3A0 3CFC F9BA F27E AB47
debsigs 구성
debsigs
의 정책 및 키링을 구성하는 것은 복잡할 수 있으므로, GitLab은 구성의 스크립트 방식으로 gitlab-debsigs.sh
를 제공합니다.
이 스크립트를 사용하려면 공개 키와 스크립트를 다운로드해야 합니다.
curl -JLO "https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg"
curl -JLO "https://gitlab.com/gitlab-org/omnibus-gitlab/raw/master/scripts/gitlab-debsigs.sh"
chmod +x gitlab-debsigs.sh
sudo ./gitlab-debsigs.sh gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
debsig-verify
로 확인
debsig-verify
를 사용하려면, debsigs 구성의 단계를 수행하고 debsig-verify
패키지를 설치하세요.
debsig-verify gitlab-xxx.deb