Skip to main content

웹 커밋 서명 구성

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

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

Site administrators can configure web commit signing for GitHub Enterprise Server 인스턴스.

웹 커밋 서명 정보

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

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

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

  1. 관리 셸에서 PGP 키를 만듭니다. 메일 주소와 키 ID를 기록해 둡니다.

    Bash
    gpg --full-generate-key --pinentry-mode=loopback
    
    • 만료 없이 기본 키 유형과 4096비트 이상을 사용합니다.
    • 사용자 이름으로 web-flow를 사용합니다. web-flow이(가) 대화 불가능이거나 사용할 수 없는 경우 새 고유 사용자 이름을 사용하세요. 이 문서의 다음 단계에서 이 사용자 이름을 사용하세요.
    • 관리 콘솔에 정의된 회신 금지 이메일 주소가 있는 경우 해당 이메일 주소를 사용합니다. 그렇지 않은 경우 이메일 주소(예: web-flow@my-company.com)를 사용합니다. 이메일 주소는 유효하지 않아도 됩니다.
    • PGP 키는 암호로 보호될 수 없습니다.
  2. 키를 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}')"
    
  3. GitHub Enterprise Server의 커밋 서명 서비스에 대한 설정을 업데이트합니다.

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

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

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

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

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

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

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

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

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

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

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

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

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

  15. "설정" 사이드바에서 설정 저장을 클릭합니다.

    참고: 관리 콘솔에 설정을 저장하면 시스템 서비스가 다시 시작되어 사용자에게 표시되는 가동 중지 시간이 발생할 수 있습니다.

  16. 구성 실행이 완료될 때까지 기다립니다.

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

  1. 관리 셸에서 PGP 키를 만듭니다. 메일 주소와 키 ID를 기록해 둡니다.

    Bash
    gpg --full-generate-key --pinentry-mode=loopback
    
    • 만료 없이 기본 키 유형과 4096비트 이상을 사용합니다.
    • 웹 커밋 서명 사용자의 사용자(예: web-flow) 이름을 사용하세요.
    • 관리 콘솔에 정의된 회신 금지 이메일 주소를 사용하세요. 이 주소는 web-flow 사용자의 이메일 주소와 동일해야 합니다.
    • PGP 키는 암호로 보호될 수 없습니다.
  2. 키를 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}')"
    
  3. GitHub Enterprise Server의 커밋 서명 서비스에 대한 설정을 업데이트합니다.

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

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

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

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

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

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

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

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

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

    Bash
    ghe-config-apply