서명된 커밋
커밋에 디지털 서명을 추가하면, 커밋이 당신에게서 발생했음을 보장하는 추가적인 신뢰를 제공합니다.
디지털 서명은 진위를 검증하는 데 사용되는 암호학적 출력입니다.
GitLab이 공개 GPG 키로 커밋 작성자의 신원을 검증할 수 있는 경우,
커밋은 GitLab UI에서 Verified로 표시됩니다.
그런 다음 프로젝트에 대한 푸시 규칙을 구성하여 개별 서명되지 않은 커밋을 거부하거나
검증되지 않은 사용자의 모든 커밋을 거부할 수 있습니다.
다음의 도구로 커밋에 서명하세요:
커밋 검증
병합 요청 또는 전체 프로젝트에 대한 커밋을 검토하고
서명이 되어 있는지 확인하려면:
- 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾아보세요.
- 커밋을 검토하려면:
- 프로젝트의 경우, Code > Commits를 선택합니다.
- 병합 요청의 경우:
- Code > Merge requests를 선택한 다음, 병합 요청을 선택합니다.
- Commits를 선택합니다.
-
검토할 커밋을 식별합니다.
서명 검증 상태에 따라, 서명된 커밋은 Verified 또는 Unverified 배지를 표시합니다.서명되지 않은 커밋은 배지를 표시하지 않습니다.
-
커밋의 서명 세부정보를 표시하려면, Verified 또는 Unverified를 선택하여
지문 또는 키 ID를 확인하세요:
커밋의 서명을 확인하려면 Commits API를 사용할 수도 있습니다.
웹 UI에서 만든 커밋 검증
GitLab은 웹 UI를 통해 생성된 커밋을 서명하기 위해 SSH를 사용합니다.
이 커밋을 로컬에서 검증하려면, Web Commits API를 사용하여
웹 커밋 서명을 위한 GitLab 공개 키를 얻으세요.
검증된 커밋과 함께 gitmailmap 사용
- GitLab 17.5에서
check_for_mailmapped_commit_emails
라는 플래그와 함께 도입됨. 기본적으로 비활성화되어 있습니다.
이 기능의 가용성은 기능 플래그에 의해 제어됩니다.
자세한 내용은 이력을 참조하세요.
gitmailmap
기능은 사용자가 작성자 이름과 이메일 주소를 매핑할 수 있게 해줍니다.
GitLab은 이러한 이메일 주소를 사용하여 커밋 작성자에게 링크를 제공합니다.
mailmap
작성자 매핑을 사용할 때,
검증된 커밋이 검증되지 않은 작성자 이메일을 가질 수 있습니다.
mailmap
작성자 매핑이 있는 SSH 서명에 대해, GitLab은 경고 기호가 있는 주황색 검증된 레이블을 표시합니다.
녹색 검증된 레이블을 복원하려면 매핑된 이메일 주소를 검증하거나
mailmap
항목을 제거하세요.
문제 해결
서명된 커밋의 검증 문제 수정
GPG 키 또는 X.509 인증서로 서명된 커밋의 검증 과정은 여러 가지 이유로 실패할 수 있습니다:
값 | 설명 | 가능한 수정 방법 |
---|---|---|
UNVERIFIED |
커밋 서명이 유효하지 않습니다. | 유효한 서명으로 커밋에 서명하세요. |
SAME_USER_DIFFERENT_EMAIL |
커밋을 서명할 때 사용한 GPG 키에 커밋 작성자의 이메일이 포함되어 있지 않지만, 다른 유효한 이메일이 포함되어 있습니다. | 커밋을 수정하여 GPG 키와 일치하는 이메일 주소를 사용하거나, GPG 키를 이메일 주소를 포함하도록 업데이트하세요. |
OTHER_USER |
서명 및 GPG 키는 유효하지만, 해당 키는 커밋 작성자와 다른 사용자에게 속합니다. | 올바른 이메일 주소를 사용하여 커밋을 수정하거나, 귀하의 사용자와 관련된 GPG 키를 사용하도록 커밋을 수정하세요. |
UNVERIFIED_KEY |
GPG 서명과 관련된 키에 커밋 작성자와 연결된 검증된 이메일 주소가 없습니다. | GitLab 프로필에 이메일을 추가 및 검증하거나, 이메일 주소를 포함하도록 GPG 키를 업데이트하거나, 다른 커밋 작성자 이메일 주소를 사용하도록 커밋을 수정하세요. |
UNKNOWN_KEY |
이 커밋의 GPG 서명과 연결된 GPG 키가 GitLab에 알려져 있지 않습니다. | GitLab 프로필에 GPG 키를 추가하세요. |
MULTIPLE_SIGNATURES |
커밋에 대해 여러 GPG 또는 X.509 서명이 발견되었습니다. | 한 개의 GPG 또는 X.509 서명만 사용하도록 커밋을 수정하세요. |