서명된 커밋
커밋에 암호화 서명을 추가하면 커밋이 가장 했음을 입증하여, 해당 커밋이 당신의 것이라는 것을 확인할 수 있게 됩니다. 이를 통해, 누군가의 흉내를 내는 사람 대신에 본질적인 커밋을 확인할 수 있습니다. 만약 GitLab이 커밋 작성자의 신원을 공개 GPG 키로 확인할 수 있다면, 해당 커밋은 GitLab UI에서 확인됨(Verified)으로 표시됩니다. 그런 다음, 프로젝트에 대해 push 규칙을 구성하여 GPG로 서명되지 않은 개별 커밋을 거부하거나, 확인되지 않은 사용자로부터의 모든 커밋을 거부할 수 있습니다.
자신의 다음과 같은 것으로 커밋에 서명하세요:
커밋 확인
Merge Request 또는 전체 프로젝트의 커밋을 확인하여 서명되었는지 확인할 수 있습니다.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 커밋을 검토하려면:
- 프로젝트의 경우 코드 > 커밋을 선택합니다.
- Merge Request의 경우:
- 코드 > Merge Request을 선택한 다음 Merge Request을 선택합니다.
- 커밋을 선택합니다.
-
확인하려는 커밋을 식별합니다. 서명된 커밋은 서명의 확인 상태에 따라 확인됨(Verified) 또는 확인되지 않음(Unverified) 배지가 표시됩니다. 서명되지 않은 커밋에는 배지가 표시되지 않습니다:
-
커밋에 대한 서명 세부정보를 표시하려면 확인됨(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 서명만 사용하도록 커밋을 수정하십시오. |