omnibus-gitlab
패키지와 관련된 암호화에 대한 세부 정보
GitLab은 다양한 OS 패키지를 제공하고, 이러한 패키지의 무결성을 보장하기 위해 packagecloud 인스턴스를 사용하며, 다양한 암호화 방법을 사용합니다. 이 페이지는 이러한 방법에 대한 세부 정보를 제공합니다.
패키지 저장소 메타데이터 서명 키
GitLab packagecloud 인스턴스의 apt 및 yum 저장소는 메타데이터를 서명하기 위해 GPG 키를 사용합니다. 이 키는 설치 지침에 지정된 리포지토리 설정 스크립트에 의해 자동으로 설치됩니다.
현재 키
키 속성 | 값 |
---|---|
이름 | 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_gitlab-?e-*/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 이후의 새 키 가져오기
최신 저장소 서명 키를 가져오려면 사용자는 install page에 언급된대로 GitLab 리포지토리를 추가하는 curl
명령을 다시 실행할 수 있습니다. 이를 통해 새 키를 가져와 사용자의 키링에 추가합니다.
또는 사용자는 다음 명령을 사용하여 새 키를 수동으로 가져와 추가할 수 있습니다.
# 새 키 다운로드
curl "https://packages.gitlab.com/gpg.key" -o /tmp/omnibus_gitlab_gpg.key
# 키 가져오기
## Debian/Ubuntu/Raspbian
```shell
sudo apt-key add /tmp/omnibus_gitlab_gpg.key
CentOS/OpenSUSE/SLES
sudo rpm --import /tmp/omnibus_gitlab_gpg.key
이전 키
일련 번호 | 키 ID | 만료 날짜 |
---|---|---|
1 | 1A4C 919D B987 D435 9396 38B9 1421 9A96 E15E 78F4
| 2020-04-15
|
패키지 서명
이 문서는 GitLab이 생성한 패키지의 서명을 수동 및 자동으로 확인하는 방법을 제공합니다.
RPM 기반 배포
RPM 형식에는 GPG 서명 기능의 완전한 구현이 포함되어 있으므로, 해당 형식을 기반으로 한 패키지 관리 시스템과 완벽하게 통합됩니다. 확인 방법은 두 가지입니다.
GitLab 공개 키의 존재 여부 확인
RPM 기반 배포에서 패키지를 확인하려면 rpm
도구의 키체인에 GitLab, Inc. 공개 키가 있는지 확인해야 합니다.
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