커밋 서명 확인 정보
커밋 및 태그에 로컬로 서명하여 다른 사용자에게 변경 내용의 출처에 대한 확신을 줄 수 있습니다. 커밋 또는 태그에 암호화적으로 확인할 수 있는 GPG, SSH 또는 S/MIME 서명이 있는 경우 GitHub Enterprise Server는 커밋 또는 태그 “확인됨”을 표시합니다.
커밋 또는 태그에 확인할 수 없는 서명이 있는 경우 GitHub Enterprise Server에서는 해당 커밋 또는 태그를 "미확인"으로 표시합니다.
대부분의 개별 사용자의 경우 GPG 또는 SSH가 커밋 서명에 가장 적합한 선택입니다. S/MIME 서명은 일반적으로 대규모 조직에서 필요합니다. SSH 서명은 가장 간단하게 생성할 수 있습니다. 기존 인증 키를 GitHub Enterprise Server에 업로드하여 서명 키로 사용할 수도 있습니다. GPG 서명 키 생성은 SSH 키를 생성하는 것보다 더 복잡하지만 GPG에는 SSH에 없는 기능이 있습니다. GPG 키는 더 이상 사용되지 않을 때 만료되거나 철회될 수 있습니다. GitHub Enterprise Server에는 키가 손상된 것으로 표시되지 않는 한 “확인됨”과 같은 키로 서명된 커밋이 표시됩니다. SSH 키에는 이 기능이 없습니다.
재지정 및 병합용 서명 확인
끌어오기 요청에서 다시 지정 및 병합 옵션을 사용하는 경우 커밋 서명 확인 없이 헤드 분기의 커밋이 기본 분기에 추가된다는 점에 유의해야 합니다. 이 옵션을 사용하면 GitHub는 원래 커밋의 데이터와 콘텐츠를 사용하여 수정된 커밋을 만듭니다. 즉, GitHub는 이 커밋을 실제로 만들지 않았으므로 일반 시스템 사용자로 서명할 수 없습니다. GitHub는 커밋자의 프라이빗 서명 키에 액세스할 수 없으므로 사용자를 대신하여 커밋에 서명할 수 없습니다.
이에 대한 해결 방법은 로컬로 다시 지정 및 병합한 다음 변경 내용을 끌어오기 요청의 기본 분기로 푸시하는 것입니다.
자세한 내용은 "GitHub에서의 병합 메서드 정보"을(를) 참조하세요.
리포지토리 관리자는 분기에 필요한 커밋 서명을 적용하여 서명 및 확인되지 않은 모든 커밋을 차단할 수 있습니다. 자세한 내용은 "보호된 분기 정보"을(를) 참조하세요.
GitHub Enterprise Server에서 서명된 커밋 또는 태그의 확인 상태를 확인하고 커밋 서명이 확인되지 않은 이유를 확인할 수 있습니다. 자세한 내용은 "커밋 및 태그 서명 확인 상태 확인"을(를) 참조하세요.
사이트 관리자가 웹 커밋 서명을 사용하도록 설정한 경우 GitHub Enterprise Server은(는) 자동으로 GPG를 사용하여 웹 인터페이스를 사용하여 커밋에 서명합니다. GitHub Enterprise Server이(가) 서명한 커밋은 확인된 상태가 됩니다. https://HOSTNAME/web-flow.gpg
에서 사용할 수 있는 퍼블릭 키를 사용하여 로컬로 서명을 확인할 수 있습니다. 자세한 내용은 "웹 커밋 서명 구성"을(를) 참조하세요.
GPG 커밋 서명 확인
GPG를 사용하여 직접 생성하는 GPG 키를 사용하여 커밋에 서명할 수 있습니다.
GitHub Enterprise Server은(는) OpenPGP 라이브러리를 사용하여 GitHub Enterprise Server 인스턴스에서 계정에 추가한 공개 키에 대해 로컬로 서명된 커밋 및 태그를 암호화하여 확인할 수 있는지 확인합니다.
GPG를 사용하여 커밋에 서명하고 GitHub Enterprise Server에서 해당 커밋을 확인하려면 다음 단계를 수행합니다.
SSH 커밋 서명 확인
SSH에서 직접 생성하는 SSH 키를 사용하여 커밋에 서명할 수 있습니다. 자세한 내용은 user.Signingkey
에 대한 Git 참조 설명서를 참조하세요. 이미 SSH 키를 사용하여 GitHub Enterprise Server(으)로 인증한 경우 서명 키로 사용하기 위해 동일한 키를 다시 업로드할 수도 있습니다. 계정에 추가할 수 있는 서명 키의 개수에는 제한이 없습니다.
GitHub Enterprise Server은(는) 오픈 소스 Ruby 라이브러리인 ssh_data를 사용하여 GitHub Enterprise Server 인스턴스에서 계정에 추가한 공개 키에 대해 로컬로 서명된 커밋 및 태그를 암호화하여 확인할 수 있는지 확인합니다.
참고: SSH 서명 확인은 Git 2.34 이상에서 사용할 수 있습니다. Git 버전을 업데이트하려면 Git 웹 사이트를 참조하세요.
SSH를 사용하여 커밋에 서명하고 GitHub Enterprise Server에서 해당 커밋을 확인하려면 다음 단계를 수행합니다.
S/MIME 커밋 서명 확인
S/MIME를 사용하여 조직에서 발급한 X.509 키로 커밋에 서명할 수 있습니다.
GitHub Enterprise Server은(는) Mozilla 브라우저에서 사용하는 것과 동일한 신뢰 저장소인 Debian ca-certificates 패키지를 사용하여 신뢰할 수 있는 루트 인증서의 퍼블릭 키에 대해 로컬로 서명된 커밋 및 태그를 암호화하여 확인할 수 있는지 확인합니다.
참고: S/MIME 서명 확인은 Git 2.19 이상에서 사용할 수 있습니다. Git 버전을 업데이트하려면 Git 웹 사이트를 참조하세요.
S/MIME를 사용하여 커밋에 서명하고 GitHub Enterprise Server에서 해당 커밋을 확인하려면 다음 단계를 수행합니다.
퍼블릭 키를 GitHub Enterprise Server에 업로드할 필요가 없습니다.
추가 참고 자료
- "커밋 서명"
- "태그 서명"
- "커밋 서명 확인 문제 해결"