서명된 커밋

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

커밋에 암호화 서명을 추가하면 커밋이 가장 했음을 입증하여, 해당 커밋이 당신의 것이라는 것을 확인할 수 있게 됩니다. 이를 통해, 누군가의 흉내를 내는 사람 대신에 본질적인 커밋을 확인할 수 있습니다. 만약 GitLab이 커밋 작성자의 신원을 공개 GPG 키로 확인할 수 있다면, 해당 커밋은 GitLab UI에서 확인됨(Verified)으로 표시됩니다. 그런 다음, 프로젝트에 대해 push 규칙을 구성하여 GPG로 서명되지 않은 개별 커밋을 거부하거나, 확인되지 않은 사용자로부터의 모든 커밋을 거부할 수 있습니다.

자신의 다음과 같은 것으로 커밋에 서명하세요:

커밋 확인

Merge Request 또는 전체 프로젝트의 커밋을 확인하여 서명되었는지 확인할 수 있습니다.

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 커밋을 검토하려면:
    • 프로젝트의 경우 코드 > 커밋을 선택합니다.
    • Merge Request의 경우:
      1. 코드 > Merge Request을 선택한 다음 Merge Request을 선택합니다.
      2. 커밋을 선택합니다.
  3. 확인하려는 커밋을 식별합니다. 서명된 커밋은 서명의 확인 상태에 따라 확인됨(Verified) 또는 확인되지 않음(Unverified) 배지가 표시됩니다. 서명되지 않은 커밋에는 배지가 표시되지 않습니다:

    서명된 및 서명되지 않은 커밋

  4. 커밋에 대한 서명 세부정보를 표시하려면 확인됨(Verified)을 선택하여 지문 또는 키 ID를 확인합니다:

    확인된 서명이 있는 커밋

    확인되지 않은 서명이 있는 커밋

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

웹 UI에서 만든 커밋 확인

GitLab은 웹 UI를 사용하여 만든 커밋에 SSH를 사용하여 서명합니다. 이러한 커밋을 로컬에서 확인하려면 SSH에 대한 단계를 따르고 다음 공개 키를 allowed_signers 파일에 추가하십시오: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIADOCCUoN3Q1UPQqUvp845fKy7haJH17qsSkVXzWXilW.

noreply@gitlab.com namespaces="git" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIADOCCUoN3Q1UPQqUvp845fKy7haJH17qsSkVXzWXilW

문제 해결

GPG 키 또는 X.509 인증서로 서명된 커밋의 검증 문제 해결

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 서명만 사용하도록 커밋을 수정하십시오.