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 키를 만들 때 사용한 것과 동일한 이메일 주소를 입력하세요.

    Note

    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