InfoGrab Docs

서명된 커밋

요약

커밋에 디지털 서명을 추가하면 사칭자가 아닌 본인으로부터 커밋이 온 것임을 추가로 보증합니다. 서명된 커밋과 검증된 커밋의 차이점을 이해하는 것이 중요합니다: GitLab이 공개 키로 커미터의 신원을 확인할 수 있으면 커밋은 GitLab UI에서 Verified로 표시됩니다.

커밋에 디지털 서명을 추가하면 사칭자가 아닌 본인으로부터 커밋이 온 것임을 추가로 보증합니다. 디지털 서명은 신뢰성을 확인하는 데 사용되는 암호화 출력입니다.

서명된 커밋과 검증된 커밋의 차이점을 이해하는 것이 중요합니다:

  • 서명된 커밋에는 커밋의 무결성과 신뢰성을 증명하는 암호화 서명이 첨부되어 있습니다. 서명은 개인 키를 사용하여 만들어집니다.
  • 검증된 커밋은 GitLab이 사용자의 GitLab 프로필에 저장된 알려진 공개 키로 유효성을 검사할 수 있는 서명이 있는 커밋입니다.

GitLab이 공개 키로 커미터의 신원을 확인할 수 있으면 커밋은 GitLab UI에서 Verified로 표시됩니다.

Note

커미터와 작성자 필드는 Git에서 별개입니다. 작성자는 커밋을 작성하고 커미터는 이를 적용합니다. 커밋 서명은 커미터의 신원만 확인합니다.

GitLab은 다음 커밋 서명 방법을 지원합니다:

커밋 확인#

머지 리퀘스트 또는 전체 프로젝트의 커밋을 검토하고 서명 여부를 확인하려면:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  2. 커밋을 검토하려면:

    • 프로젝트의 경우 Code > Commits를 선택합니다.
    • 머지 리퀘스트의 경우:
      1. 왼쪽 사이드바에서 Code > Merge requests를 선택한 다음 머지 리퀘스트를 선택합니다.
      2. Commits를 선택합니다.
  3. 검토할 커밋을 식별합니다. 서명의 확인 상태에 따라 서명된 커밋은 Verified 또는 Unverified 배지를 표시합니다.

    검증됨 및 미검증 배지가 있는 커밋 목록.

    서명되지 않은 커밋은 배지를 표시하지 않습니다.

  4. 커밋의 서명 세부 정보를 보려면 Verified 또는 Unverified를 선택하여 지문 또는 키 ID를 확인합니다:

    커밋의 검증된 서명 세부 정보.

    커밋의 미검증 서명 세부 정보.

또한 커밋 API 사용하여 커밋의 서명을 확인할 수 있습니다.

Web UI 커밋 확인#

GitLab은 SSH를 사용하여 웹 UI를 통해 만들어진 커밋에 서명합니다. 이러한 커밋을 로컬에서 확인하려면 웹 커밋 API를 사용하여 웹 커밋 서명을 위한 GitLab 공개 키를 가져옵니다.

서명된 커밋의 Mailmap 이메일 감지#

히스토리
Feature flag

이 기능의 가용성은 기능 플래그로 제어됩니다. 자세한 내용은 기록을 참조하세요. 이 플래그는 mailmap 감지를 위한 인프라를 활성화합니다. 전체 mailmap 지원은 추가 구성이 필요하며 아직 기본적으로 활성화되지 않습니다.

검증된 서명된 커밋의 커미터 이메일이 서명 사용자에게 더 이상 확인되지 않으면 GitLab은 경고 표시(⚠️ Verified)가 있는 주황색 검증 배지를 표시합니다.

다음과 같은 경우에 발생할 수 있습니다:

  • 커미터 이메일이 사용자의 확인된 이메일에서 제거된 경우.
  • .mailmap 파일이 커미터 이메일을 서명 사용자가 확인하지 않은 주소로 재매핑하는 경우.

녹색 Verified 배지를 복원하려면 커미터 이메일 주소를 GitLab 프로필에 추가하고 확인합니다.

푸시 규칙으로 서명된 커밋 적용#

푸시 규칙을 사용하여 프로젝트 전반에 서명된 커밋을 요구할 수 있습니다. Reject unsigned commits 푸시 규칙은 서명되지 않은 모든 커밋이 저장소에 푸시되는 것을 방지하여 조직이 코드 무결성을 유지하고 규정 준수 요구 사항을 충족하는 데 도움이 됩니다.

이 규칙의 작동 방식과 제한 사항에 대한 자세한 내용은 서명된 커밋 요구를 참조하세요.

트러블슈팅#

서명된 커밋의 확인 문제 수정#

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 서명만 사용하도록 커밋을 수정합니다.

서명된 커밋

Tier: Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

커밋에 디지털 서명을 추가하면 사칭자가 아닌 본인으로부터 커밋이 온 것임을 추가로 보증합니다. 서명된 커밋과 검증된 커밋의 차이점을 이해하는 것이 중요합니다: GitLab이 공개 키로 커미터의 신원을 확인할 수 있으면 커밋은 GitLab UI에서 Verified로 표시됩니다.

커밋에 디지털 서명을 추가하면 사칭자가 아닌 본인으로부터 커밋이 온 것임을 추가로 보증합니다. 디지털 서명은 신뢰성을 확인하는 데 사용되는 암호화 출력입니다.

서명된 커밋과 검증된 커밋의 차이점을 이해하는 것이 중요합니다:

  • 서명된 커밋에는 커밋의 무결성과 신뢰성을 증명하는 암호화 서명이 첨부되어 있습니다. 서명은 개인 키를 사용하여 만들어집니다.
  • 검증된 커밋은 GitLab이 사용자의 GitLab 프로필에 저장된 알려진 공개 키로 유효성을 검사할 수 있는 서명이 있는 커밋입니다.

GitLab이 공개 키로 커미터의 신원을 확인할 수 있으면 커밋은 GitLab UI에서 Verified로 표시됩니다.

Note

커미터와 작성자 필드는 Git에서 별개입니다. 작성자는 커밋을 작성하고 커미터는 이를 적용합니다. 커밋 서명은 커미터의 신원만 확인합니다.

GitLab은 다음 커밋 서명 방법을 지원합니다:

커밋 확인#

머지 리퀘스트 또는 전체 프로젝트의 커밋을 검토하고 서명 여부를 확인하려면:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  2. 커밋을 검토하려면:

    • 프로젝트의 경우 Code > Commits를 선택합니다.
    • 머지 리퀘스트의 경우:
      1. 왼쪽 사이드바에서 Code > Merge requests를 선택한 다음 머지 리퀘스트를 선택합니다.
      2. Commits를 선택합니다.
  3. 검토할 커밋을 식별합니다. 서명의 확인 상태에 따라 서명된 커밋은 Verified 또는 Unverified 배지를 표시합니다.

    검증됨 및 미검증 배지가 있는 커밋 목록.

    서명되지 않은 커밋은 배지를 표시하지 않습니다.

  4. 커밋의 서명 세부 정보를 보려면 Verified 또는 Unverified를 선택하여 지문 또는 키 ID를 확인합니다:

    커밋의 검증된 서명 세부 정보.

    커밋의 미검증 서명 세부 정보.

또한 커밋 API 사용하여 커밋의 서명을 확인할 수 있습니다.

Web UI 커밋 확인#

GitLab은 SSH를 사용하여 웹 UI를 통해 만들어진 커밋에 서명합니다. 이러한 커밋을 로컬에서 확인하려면 웹 커밋 API를 사용하여 웹 커밋 서명을 위한 GitLab 공개 키를 가져옵니다.

서명된 커밋의 Mailmap 이메일 감지#

히스토리
Feature flag

이 기능의 가용성은 기능 플래그로 제어됩니다. 자세한 내용은 기록을 참조하세요. 이 플래그는 mailmap 감지를 위한 인프라를 활성화합니다. 전체 mailmap 지원은 추가 구성이 필요하며 아직 기본적으로 활성화되지 않습니다.

검증된 서명된 커밋의 커미터 이메일이 서명 사용자에게 더 이상 확인되지 않으면 GitLab은 경고 표시(⚠️ Verified)가 있는 주황색 검증 배지를 표시합니다.

다음과 같은 경우에 발생할 수 있습니다:

  • 커미터 이메일이 사용자의 확인된 이메일에서 제거된 경우.
  • .mailmap 파일이 커미터 이메일을 서명 사용자가 확인하지 않은 주소로 재매핑하는 경우.

녹색 Verified 배지를 복원하려면 커미터 이메일 주소를 GitLab 프로필에 추가하고 확인합니다.

푸시 규칙으로 서명된 커밋 적용#

푸시 규칙을 사용하여 프로젝트 전반에 서명된 커밋을 요구할 수 있습니다. Reject unsigned commits 푸시 규칙은 서명되지 않은 모든 커밋이 저장소에 푸시되는 것을 방지하여 조직이 코드 무결성을 유지하고 규정 준수 요구 사항을 충족하는 데 도움이 됩니다.

이 규칙의 작동 방식과 제한 사항에 대한 자세한 내용은 서명된 커밋 요구를 참조하세요.

트러블슈팅#

서명된 커밋의 확인 문제 수정#

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 서명만 사용하도록 커밋을 수정합니다.