Skip to main content

웹 커밋 서명 구성

GitHub Enterprise Server의 웹 인터페이스에서 만든 커밋의 자동 서명을 사용하도록 설정할 수 있습니다.

누가 이 기능을 사용할 수 있나요?

Site administrators

웹 커밋 서명 정보

웹 커밋 서명을 사용하도록 설정하면 GitHub Enterprise Server에서 자동으로 GPG를 사용하여 사용자가 GitHub Enterprise Server 인스턴스의 웹 인터페이스에서 만드는 커밋에 서명합니다. GitHub Enterprise Server가 서명한 커밋은 확인된 상태가 됩니다. 자세한 내용은 커밋 서명 확인에 대한 안내을(를) 참조하세요.

웹 커밋 서명을 사용하도록 설정하고, 웹 커밋 서명에 사용하는 프라이빗 키를 회전하고, 웹 커밋 서명을 사용하지 않도록 설정할 수 있습니다.

영구 커밋 서명 검증에 대하여

영구 커밋 서명 검증은 웹 커밋 서명과 관련은 있지만 별개의 개념입니다. 이 기능을 사용하면 서명 키가 변경되거나 해지되더라도 커밋의 검증된 상태를 유지할 수 있습니다.

영구 커밋 서명 검증은 리포지토리의 커밋 기록에 대한 장기적인 무결성 및 신뢰를 유지하는 데 도움이 됩니다. 하지만 디스크 사용량을 최소화하는 것이 우선인 환경에서는 특히 검증된 커밋 수가 많은 대규모 설치에서 이를 비활성화할 수 있습니다.

영구 커밋 서명 검증을 비활성화하는 방법에 대한 자세한 내용은 영구 커밋 검증 사용 안 함을(를) 참조하세요.

웹 커밋 서명을 사용하도록 설정

데이터 재사용 가능.엔터프라이즈_사이트_관리자_설정.create-pgp-key-웹-커밋-서명 %}

  • 사용자 이름으로 web-flow를 사용합니다. web-flow이(가) 대화 불가능이거나 사용할 수 없는 경우 새 고유 사용자 이름을 사용하세요. 이 문서의 다음 단계에서 이 사용자 이름을 사용하세요.
  • 관리 콘솔에 정의된 회신 금지 이메일 주소가 있는 경우 해당 이메일 주소를 사용합니다. 그렇지 않은 경우 이메일 주소(예: web-flow@my-company.com)를 사용합니다. 이메일 주소는 유효하지 않아도 됩니다.
  • PGP 키는 암호로 보호될 수 없습니다.
  1. 키를 GitHub Enterprise Server에 대한 환경 변수로 정의하고 <YOUR-KEY-ID>를 GPG 키 ID로 바꿉니다.

    Bash
    ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
    
  2. GitHub의 커밋 서명 서비스에 대한 설정을 업데이트합니다.

    Bash
    sudo consul-template -once -template /etc/consul-templates/etc/nomad-jobs/gpgverify/gpgverify.hcl.ctmpl:/etc/nomad-jobs/gpgverify/gpgverify.hcl
     
    sudo nomad job run /etc/nomad-jobs/gpgverify/gpgverify.hcl
    
  3. 웹 커밋 서명을 사용하도록 설정합니다.

    Bash
    ghe-config app.github.web-commit-signing-enabled true
    
  4. 기본 제공 인증 또는 외부 인증을 통해 GitHub Enterprise Server 인스턴스에서 새 사용자를 만드세요. 자세한 내용은 ID 및 액세스 관리 기본 사항을(를) 참조하세요.

    • 사용자의 사용자 이름은 위의 1단계에서 PGP 키를 만들 때 사용한 것과 동일한 사용자 이름이어야 합니다. 예를 들면 web-flow와(과) 같아야 합니다.
    • 사용자의 이메일 주소는 PGP 키를 만들 때 사용한 주소와 동일해야 합니다.
  5. 다음 명령을 실행하여 KEY-ID를 PGP 키 ID로 바꿉니다.

    Bash
    gpg --armor --export KEY-ID
    
  6. -----BEGIN PGP PUBLIC KEY BLOCK-----으로 시작하고 -----END PGP PUBLIC KEY BLOCK-----으로 끝나는 PGP 키를 복사합니다.

  7. 웹 커밋 서명을 위해 만든 사용자로 GitHub Enterprise Server에 로그인합니다. 예를 들면 web-flow다음과 같습니다.

  8. 사용자 프로필에 공용 PGP 키를 추가합니다. 자세한 내용은 GitHub 계정에 GPG 키 추가을(를) 참조하세요.

    참고

    GPG 키 목록에서 다른 공개 키를 제거하지 마세요. 공개 키가 삭제되면 해당 프라이빗 키로 서명된 모든 커밋은 더 이상 확인된 것으로 표시되지 않습니다.

  9. 페이지의 오른쪽 상단에 있는 GitHub Enterprise Server의 관리 계정에서 을 클릭합니다.

  10. “Site admin”(사이트 관리자) 페이지에 아직 없는 경우 왼쪽 상단에서 Site admin(사이트 관리자)을 클릭합니다.

  11. " 사이트 관리자" 사이드바에서 관리 콘솔 을 클릭합니다.

  12. "설정" 사이드바에서 이메일을 클릭합니다.

  13. "회신 금지 이메일 주소"에 PGP 키를 만들 때 사용한 것과 동일한 이메일 주소를 입력하세요.

    참고

    GitHub Enterprise Server 인스턴스에 메일을 사용하도록 설정한 경우에만 "회신 금지 메일 주소" 필드가 표시됩니다. 자세한 내용은 알림에 대한 메일 구성을(를) 참조하세요.

{ 데이터 재사용 가능의 엔터프라이즈 관리 콘솔 설정 저장 }

웹 커밋 서명에 사용하는 프라이빗 키 회전

데이터 재사용 가능.엔터프라이즈_사이트_관리자_설정.create-pgp-key-웹-커밋-서명 %}

  • 웹 커밋 서명 사용자의 사용자(예: web-flow) 이름을 사용하세요.
  • 관리 콘솔에 정의된 회신 금지 이메일 주소를 사용하세요. 이는 예를 들어 웹 커밋 서명 사용자의 이메일 주소인 web-flow과 동일해야 합니다.
  • PGP 키는 암호로 보호될 수 없습니다.
  1. 키를 GitHub Enterprise Server에 대한 환경 변수로 정의하고 <YOUR-KEY-ID>를 GPG 키 ID로 바꿉니다.

    Bash
    ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
    
  2. GitHub의 커밋 서명 서비스에 대한 설정을 업데이트합니다.

    Bash
    sudo consul-template -once -template /etc/consul-templates/etc/nomad-jobs/gpgverify/gpgverify.hcl.ctmpl:/etc/nomad-jobs/gpgverify/gpgverify.hcl
     
    sudo nomad job run /etc/nomad-jobs/gpgverify/gpgverify.hcl
    
  3. 다음 명령을 실행하여 KEY-ID를 PGP 키 ID로 바꿉니다.

    Bash
    gpg --armor --export KEY-ID
    
  4. -----BEGIN PGP PUBLIC KEY BLOCK-----으로 시작하고 -----END PGP PUBLIC KEY BLOCK-----으로 끝나는 PGP 키를 복사합니다.

  5. 웹 커밋 서명을 위해 만든 사용자로 GitHub Enterprise Server에 로그인합니다. 예를 들면 web-flow다음과 같습니다.

  6. 사용자 프로필에 공용 PGP 키를 추가합니다. 자세한 내용은 GitHub 계정에 GPG 키 추가을(를) 참조하세요.

    참고

    GPG 키 목록에서 다른 공개 키를 제거하지 마세요. 공개 키가 삭제되면 해당 프라이빗 키로 서명된 모든 커밋은 더 이상 확인된 것으로 표시되지 않습니다.

웹 커밋 서명을 사용하지 않도록 설정

GitHub Enterprise Server 인스턴스에 웹 커밋 서명을 사용하지 않도록 설정할 수 있습니다.

  1. 관리 셸에서 다음 명령을 실행합니다.

    Bash
    ghe-config app.github.web-commit-signing-enabled false
    
  2. 구성을 적용하세요.

    Bash
    ghe-config-apply