Hub documentation

GPG로 커밋 서명

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

GPG로 커밋 서명

git에는 리포지토리에 커밋을 푸시할 수 있는 사용자를 제어하는 인증 계층이 있지만, 실제 커밋 작성자를 인증하지는 않습니다.

즉, Elon Musk <elon@tesla.com>로 변경 사항을 커밋하고, 선호하는 git 호스트(예: github.com)에 푸시하면 해당 커밋이 Elon의 GitHub 프로필에 링크됩니다. (해당 방식으로 시도해 보세요! 하지만 Elon이 자신을 사칭했다는 이유로 화를 내면 책임지지 않습니다.)

GPG 서명을 구현한 이유는 다음과 같습니다:

  • 특히 엔터프라이즈 사용자가 Hub에 점점 더 많이 의존함에 따라, 더 세밀한 수준의 보안을 제공하기 위해.
  • 암호학적으로 안전한 소스에 기반한 ML 벤치마크를 제공하기 위해

자세한 배경은 Ale Segala의 git 커밋 서명 방법(그리고 그 이유)을 참고하세요.

GNU Privacy Guard(GPG)와 키 서버를 사용하여 커밋이 본인에 의해 작성되었음을 증명할 수 있습니다. GPG는 메시지의 출처 진위를 검증하는 데 사용되는 암호화 도구입니다. 아래에서 Hugging Face에 이를 설정하는 방법을 설명합니다.

Pro Git 책은 평소와 마찬가지로 커밋 서명에 관한 좋은 자료입니다: Pro Git: Signing your work.

서명된 커밋 검증 설정

다음 명령을 실행하려면 시스템에 GPG를 설치해야 합니다.

It’s included by default in most Linux distributions. On Windows, it is included in Git Bash (which comes with git for Windows).

로컬에서 GPG를 사용하여 커밋에 서명할 수 있습니다. 이후 Hub에서 이러한 커밋을 verified로 표시하도록 프로필을 설정하면, 다른 사용자가 해당 커밋이 신뢰할 수 있는 출처에서 온 것인지 확신을 가질 수 있습니다.

git와 GPG가 상호작용하는 방식에 대한 보다 자세한 설명은 git 문서를 참고하세요.

커밋에는 다음과 같은 서명 상태가 있을 수 있습니다:

상태설명
검증됨커밋이 서명되어 있으며 서명이 검증되었습니다
미인증커밋은 서명되어 있지만 서명을 검증할 수 없습니다
서명 상태 없음커밋이 서명되지 않았습니다

커밋이 verified로 표시되려면, 해당 커밋에 서명하는 데 사용된 공개 키를 Hugging Face 계정에 업로드해야 합니다.

gpg --list-secret-keys 명령을 사용하여 공개 키와 개인 키를 모두 보유한 GPG 키를 나열합니다. 커밋 또는 태그에 서명하려면 개인 키가 필요합니다.

GPG 키 쌍이 없거나 기존 키를 사용하여 커밋에 서명하지 않으려면 새 GPG 키 생성으로 이동하세요.

그렇지 않은 경우, 계정에 GPG 키 추가로 바로 이동하세요.

새 GPG 키 생성

GPG 키를 생성하려면 다음을 실행하세요:

gpg --gen-key

GPG는 GPG 키 쌍을 생성하는 과정을 안내합니다.

이 키에 대한 이메일 주소를 지정하고, 해당 이메일 주소가 Hugging Face 계정에서 지정한 이메일 주소와 일치하는지 확인하세요.

계정에 GPG 키 추가

  1. 먼저 컴퓨터에서 GPG 키를 선택하거나 생성합니다. 키의 이메일 주소가 Hugging Face 계정의 이메일 주소와 일치하고, 계정 이메일이 인증되었는지 확인합니다.

  2. 선택한 키의 공개 부분을 내보냅니다:

gpg --armor --export <YOUR KEY ID>
  1. 이후 프로필의 설정 페이지로 이동하여 GPG 키 추가를 클릭하세요.

gpg --export 명령의 출력을 텍스트 영역에 복사 & 붙여넣고 키 추가를 클릭하세요.

  1. 축하합니다! 🎉 방금 계정에 GPG 키를 추가했습니다!

git을 설정하여 GPG로 커밋에 서명

마지막 단계는 git을 구성하여 커밋에 서명하는 것입니다:

git config user.signingkey <Your GPG Key ID>
git config user.email <Your email on hf.co>

그 후 git commit 명령에 -S 플래그를 추가하여 커밋에 서명하세요!

git commit -S -m "My first signed commit"

Hub에 push한 후, 커밋에 “Verified” 배지가 표시되어야 합니다.

컴퓨터의 모든 로컬 저장소에서 기본적으로 모든 커밋에 서명하려면 git config —global commit.gpgsign true를 실행할 수 있습니다.

Update on GitHub