Skip to main content

Enterprise Server 3.19 은(는) 현재 릴리스 후보로 제공됩니다.

TLS 및 SSH 암호화 구성

GitHub Enterprise Server에서 특정 규정 준수 또는 보안 요구 사항을 충족하기 위해 TLS 및 SSH 연결에 사용할 암호화 수트 및 암호화 알고리즘을 구성할 수 있습니다.

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

Site administrators

암호 그룹 및 알고리즘 구성 정보

GitHub Enterprise Server를 사용하면 사용할 암호화 도구 모음 및 암호화 알고리즘을 구성할 수 있습니다.

  • 포트 443(HTTPS 웹 인터페이스) 및 8443(HTTPS 관리 콘솔)의 TLS 연결
  • 포트 22의 SSH 연결(SSH를 통한 Git 작업) 및 포트 122(관리 셸 액세스)

기본 보안 암호 제품군은 업계 표준 TLS 강화 권장 사항 및 최신 보안 모범 사례를 기반으로 합니다. 특정 규정 준수 또는 보안 요구 사항이 달리 명시되지 않는 한 대부분의 조직에서는 이러한 기본값을 사용해야 합니다.

조직은 특정 조직 보안 정책, 업계 표준 또는 규정 요구 사항을 충족하도록 암호화 도구 모음 및 암호화 알고리즘을 사용자 지정해야 할 수 있습니다.

GitHub Enterprise Server 3.19부터 TLS 암호를 구성이 가능하며, 웹 게이트웨이는 더 안전한 암호 기본값을 사용합니다. 기존 인스턴스와의 이전 버전과의 호환성을 유지하기 위해 새로 프로비전된 인스턴스는 이러한 새 기본값을 사용합니다.

경고

지나치게 제한적인 암호 그룹을 구성하면 클라이언트가 인스턴스에 연결하지 못할 수 있습니다. 항상 비프로덕션 환경에서 변경 내용을 먼저 테스트하고, 하나 이상의 암호화 도구 모음이 클라이언트와 호환되는지 확인하고, 구성 변경 내용을 적용한 후 연결을 확인합니다.

참고 항목

TLS 암호 그룹을 구성할 때 구성 명령에서 쉼표로 구분된 값을 사용합니다. GitHub Enterprise Server는 HAProxy 구성을 위해 쉼표 구분 기호를 콜론으로 자동으로 변환합니다. 암호화 도구 모음은 지정된 순서대로 평가되므로 선호하는 암호화를 먼저 나열합니다.

TLS 암호 그룹 구성

TLS 1.2 및 TLS 1.3 연결에 사용되는 암호 그룹을 구성할 수 있습니다.

사용 가능한 TLS 암호 그룹 나열

  1. 대상 GitHub Enterprise Server 인스턴스에 SSH합니다. 자세한 내용은 관리 셸(SSH)에 액세스을(를) 참조하세요.

    ssh -p 122 admin@HOSTNAME
    
  2. TLS 1.2에 대한 기본 보안 암호 그룹을 보려면 다음 명령을 실행합니다.

    Shell
    ghe-crypto list tlsv12-ciphersuites
    
  3. TLS 1.3에 대한 기본 보안 암호 그룹을 보려면 다음 명령을 실행합니다.

    Shell
    ghe-crypto list tlsv13-ciphersuites
    

현재 암호 구성 보기

  1. 대상 GitHub Enterprise Server 인스턴스에 SSH합니다. 자세한 내용은 관리 셸(SSH)에 액세스을(를) 참조하세요.

    ssh -p 122 admin@HOSTNAME
    
  2. 구성된 TLS 1.2 암호 그룹을 보려면 다음 명령을 실행합니다.

    Shell
    ghe-config github-ssl.tlsv12-ciphersuites
    
  3. 구성된 TLS 1.3 암호 그룹을 보려면 다음 명령을 실행합니다.

    Shell
    ghe-config github-ssl.tlsv13-ciphersuites
    

    이러한 명령이 빈 값을 반환하는 경우 인스턴스는 보안 기본값을 사용합니다.

TLS 1.2 암호 그룹 설정

  1. 대상 GitHub Enterprise Server 인스턴스에 SSH합니다. 자세한 내용은 관리 셸(SSH)에 액세스을(를) 참조하세요.

    ssh -p 122 admin@HOSTNAME
    
  2. 명령을 사용하여 ghe-crypto check 원하는 TLS 1.2 암호 그룹을 확인합니다. 쉼표로 구분된 암호화 스위트 목록으로 CIPHER1,CIPHER2,CIPHER3을 바꾸십시오.

    Shell
    ghe-crypto check tlsv12-ciphersuites CIPHER1,CIPHER2,CIPHER3
    

    다음은 그 예입니다.

    ghe-crypto check tlsv12-ciphersuites ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384
    
  3. 암호 문자열이 유효한 경우 TLS 1.2 암호 그룹을 설정합니다. CIPHER1,CIPHER2,CIPHER3를 쉼표로 구분된 목록으로 교체하세요.

    Shell
    ghe-config github-ssl.tlsv12-ciphersuites 'CIPHER1,CIPHER2,CIPHER3'
    

    다음은 그 예입니다.

    ghe-config github-ssl.tlsv12-ciphersuites 'ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384'
    
  4. 구성을 확인합니다.

    Shell
    ghe-config-check
    
  5. 구성을 적용하려면 다음 명령을 실행합니다.

    참고 항목

    구성을 실행하는 동안 의 서비스가 다시 시작될 수 있으므로 짧은 가동 중지 시간이 발생할 수 있습니다.

    Shell
    ghe-config-apply
    
  6. 구성 실행이 완료될 때까지 기다립니다.

  7. 사용자 메시지 또는 유지 관리 모드를 구성한 경우 메시지를 제거하고 유지 관리 모드를 사용하지 않도록 설정합니다.

TLS 1.3 암호 그룹 설정

  1. 대상 GitHub Enterprise Server 인스턴스에 SSH합니다. 자세한 내용은 관리 셸(SSH)에 액세스을(를) 참조하세요.

    ssh -p 122 admin@HOSTNAME
    
  2. 명령을 사용하여 ghe-crypto check 원하는 TLS 1.3 암호 그룹을 확인합니다. 쉼표로 구분된 암호화 스위트 목록으로 CIPHER1,CIPHER2,CIPHER3을 바꾸십시오.

    Shell
    ghe-crypto check tlsv13-ciphersuites CIPHER1,CIPHER2,CIPHER3
    

    다음은 그 예입니다.

    ghe-crypto check tlsv13-ciphersuites TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256
    
  3. 암호 문자열이 유효한 경우 TLS 1.3 암호 그룹을 설정합니다. CIPHER1,CIPHER2,CIPHER3를 쉼표로 구분된 목록으로 교체하세요.

    Shell
    ghe-config github-ssl.tlsv13-ciphersuites 'CIPHER1,CIPHER2,CIPHER3'
    

    다음은 그 예입니다.

    ghe-config github-ssl.tlsv13-ciphersuites 'TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256'
    
  4. 구성을 확인합니다.

    Shell
    ghe-config-check
    
  5. 구성을 적용하려면 다음 명령을 실행합니다.

    참고 항목

    구성을 실행하는 동안 의 서비스가 다시 시작될 수 있으므로 짧은 가동 중지 시간이 발생할 수 있습니다.

    Shell
    ghe-config-apply
    
  6. 구성 실행이 완료될 때까지 기다립니다.

  7. 사용자 메시지 또는 유지 관리 모드를 구성한 경우 메시지를 제거하고 유지 관리 모드를 사용하지 않도록 설정합니다.

SSH 암호화 알고리즘 구성

포트 22(Git 작업) 및 포트 122(관리 셸 액세스)에서 SSH 연결에 사용되는 암호화 알고리즘을 구성할 수 있습니다.

사용 가능한 SSH 알고리즘 나열

  1. 대상 GitHub Enterprise Server 인스턴스에 SSH합니다. 자세한 내용은 관리 셸(SSH)에 액세스을(를) 참조하세요.

    ssh -p 122 admin@HOSTNAME
    
  2. 기본 보안 SSH 암호화를 보려면 다음 명령을 실행합니다.

    Shell
    ghe-crypto list ssh-ciphers
    
  3. 기본 보안 SSH MAC 알고리즘을 보려면 다음 명령을 실행합니다.

    Shell
    ghe-crypto list ssh-mac-algorithms
    
  4. 기본 보안 SSH 키 교환 알고리즘을 보려면 다음 명령을 실행합니다.

    Shell
    ghe-crypto list ssh-kex-algorithms
    
  5. 기본 보안 SSH 서명 형식을 보려면 다음 명령을 실행합니다.

    Shell
    ghe-crypto list ssh-signature-types
    

현재 SSH 구성 보기

  1. 대상 GitHub Enterprise Server 인스턴스에 SSH합니다. 자세한 내용은 관리 셸(SSH)에 액세스을(를) 참조하세요.

    ssh -p 122 admin@HOSTNAME
    
  2. 구성된 SSH 암호화를 보려면 다음 명령을 실행합니다.

    Shell
    ghe-config github-ssl.ssh-ciphers
    
  3. 구성된 SSH MAC 알고리즘을 보려면 다음 명령을 실행합니다.

    Shell
    ghe-config github-ssl.ssh-mac-algorithms
    
  4. 구성된 SSH 키 교환 알고리즘을 보려면 다음 명령을 실행합니다.

    Shell
    ghe-config github-ssl.ssh-kex-algorithms
    
  5. 구성된 SSH 서명 형식을 보려면 다음 명령을 실행합니다.

    Shell
    ghe-config github-ssl.ssh-signature-types
    

    이러한 명령이 빈 값을 반환하는 경우 인스턴스는 보안 기본값을 사용합니다.

SSH 암호 설정

  1. 대상 GitHub Enterprise Server 인스턴스에 SSH합니다. 자세한 내용은 관리 셸(SSH)에 액세스을(를) 참조하세요.

    ssh -p 122 admin@HOSTNAME
    
  2. 명령을 사용하여 원하는 SSH 암호화를 확인합니다 ghe-crypto check . cipher1,cipher2,cipher3를 쉼표로 구분된 암호 목록으로 바꾸십시오.

    Shell
    ghe-crypto check ssh-ciphers cipher1,cipher2,cipher3
    

    다음은 그 예입니다.

    ghe-crypto check ssh-ciphers [email protected],[email protected],[email protected]
    
  3. 암호 문자열이 유효한 경우 SSH 암호화를 설정합니다. cipher1,cipher2,cipher3를 쉼표로 구분된 목록으로 교체하세요.

    Shell
    ghe-config github-ssl.ssh-ciphers 'cipher1,cipher2,cipher3'
    

    다음은 그 예입니다.

    ghe-config github-ssl.ssh-ciphers '[email protected],[email protected],[email protected]'
    
  4. 구성을 확인합니다.

    Shell
    ghe-config-check
    
  5. 구성을 적용하려면 다음 명령을 실행합니다.

    참고 항목

    구성을 실행하는 동안 의 서비스가 다시 시작될 수 있으므로 짧은 가동 중지 시간이 발생할 수 있습니다.

    Shell
    ghe-config-apply
    
  6. 구성 실행이 완료될 때까지 기다립니다.

  7. 사용자 메시지 또는 유지 관리 모드를 구성한 경우 메시지를 제거하고 유지 관리 모드를 사용하지 않도록 설정합니다.

SSH MAC 알고리즘 설정

  1. 대상 GitHub Enterprise Server 인스턴스에 SSH합니다. 자세한 내용은 관리 셸(SSH)에 액세스을(를) 참조하세요.

    ssh -p 122 admin@HOSTNAME
    
  2.        `ghe-crypto check` 명령을 사용하여 원하는 SSH MAC 알고리즘을 확인하십시오. MAC 알고리즘의 쉼표로 구분된 목록으로 `mac1,mac2,mac3`를 바꾸십시오.
    
    Shell
    ghe-crypto check ssh-mac-algorithms mac1,mac2,mac3
    

    다음은 그 예입니다.

    ghe-crypto check ssh-mac-algorithms [email protected],[email protected]
    
  3. MAC 알고리즘 문자열이 유효한 경우 SSH MAC 알고리즘을 설정합니다. mac1,mac2,mac3를 쉼표로 구분된 목록으로 교체하세요.

    Shell
    ghe-config github-ssl.ssh-mac-algorithms 'mac1,mac2,mac3'
    

    다음은 그 예입니다.

    ghe-config github-ssl.ssh-mac-algorithms '[email protected],[email protected]'
    
  4. 구성을 확인합니다.

    Shell
    ghe-config-check
    
  5. 구성을 적용하려면 다음 명령을 실행합니다.

    참고 항목

    구성을 실행하는 동안 의 서비스가 다시 시작될 수 있으므로 짧은 가동 중지 시간이 발생할 수 있습니다.

    Shell
    ghe-config-apply
    
  6. 구성 실행이 완료될 때까지 기다립니다.

  7. 사용자 메시지 또는 유지 관리 모드를 구성한 경우 메시지를 제거하고 유지 관리 모드를 사용하지 않도록 설정합니다.

SSH 키 교환 알고리즘 설정

  1. 대상 GitHub Enterprise Server 인스턴스에 SSH합니다. 자세한 내용은 관리 셸(SSH)에 액세스을(를) 참조하세요.

    ssh -p 122 admin@HOSTNAME
    
  2.        `ghe-crypto check` 명령을 사용하여 원하는 SSH 키 교환 알고리즘을 확인합니다. 키 교환 알고리즘의 쉼표로 구분된 목록으로 `kex1,kex2,kex3`를 바꾸십시오.
    
    Shell
    ghe-crypto check ssh-kex-algorithms kex1,kex2,kex3
    

    다음은 그 예입니다.

    ghe-crypto check ssh-kex-algorithms curve25519-sha256,[email protected],ecdh-sha2-nistp521
    
  3. 키 교환 알고리즘 문자열이 유효한 경우 SSH 키 교환 알고리즘을 설정합니다. kex1,kex2,kex3를 쉼표로 구분된 목록으로 교체하세요.

    Shell
    ghe-config github-ssl.ssh-kex-algorithms 'kex1,kex2,kex3'
    

    다음은 그 예입니다.

    ghe-config github-ssl.ssh-kex-algorithms 'curve25519-sha256,[email protected],ecdh-sha2-nistp521'
    
  4. 구성을 확인합니다.

    Shell
    ghe-config-check
    
  5. 구성을 적용하려면 다음 명령을 실행합니다.

    참고 항목

    구성을 실행하는 동안 의 서비스가 다시 시작될 수 있으므로 짧은 가동 중지 시간이 발생할 수 있습니다.

    Shell
    ghe-config-apply
    
  6. 구성 실행이 완료될 때까지 기다립니다.

  7. 사용자 메시지 또는 유지 관리 모드를 구성한 경우 메시지를 제거하고 유지 관리 모드를 사용하지 않도록 설정합니다.

SSH 서명 형식 설정

  1. 대상 GitHub Enterprise Server 인스턴스에 SSH합니다. 자세한 내용은 관리 셸(SSH)에 액세스을(를) 참조하세요.

    ssh -p 122 admin@HOSTNAME
    
  2. 명령을 사용하여 ghe-crypto check 원하는 SSH 서명 유형을 확인합니다. sig1,sig2,sig3을(를) 서명 형식의 쉼표로 구분된 목록으로 변경하십시오.

    Shell
    ghe-crypto check ssh-signature-types sig1,sig2,sig3
    

    다음은 그 예입니다.

    ghe-crypto check ssh-signature-types ssh-ed25519,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384
    
  3. 서명 형식 문자열이 유효한 경우 SSH 서명 형식을 설정합니다. sig1,sig2,sig3를 쉼표로 구분된 목록으로 교체하세요.

    Shell
    ghe-config github-ssl.ssh-signature-types 'sig1,sig2,sig3'
    

    다음은 그 예입니다.

    ghe-config github-ssl.ssh-signature-types 'ssh-ed25519,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384'
    
  4. 구성을 확인합니다.

    Shell
    ghe-config-check
    
  5. 구성을 적용하려면 다음 명령을 실행합니다.

    참고 항목

    구성을 실행하는 동안 의 서비스가 다시 시작될 수 있으므로 짧은 가동 중지 시간이 발생할 수 있습니다.

    Shell
    ghe-config-apply
    
  6. 구성 실행이 완료될 때까지 기다립니다.

  7. 사용자 메시지 또는 유지 관리 모드를 구성한 경우 메시지를 제거하고 유지 관리 모드를 사용하지 않도록 설정합니다.

암호화 구성 문제 해결

암호화 구성을 변경한 후 클라이언트가 GitHub Enterprise Server 인스턴스에 연결할 수 없는 경우 문제를 해결할 수 있습니다.

  1. 클라이언트가 구성된 TLS 또는 SSH 프로토콜 버전을 지원하는지 확인합니다.
  2. 구성된 암호화 제품군이 하나 이상 클라이언트와 호환되는지 확인합니다.
  3. TLS 핸드셰이크 오류 또는 SSH 연결 오류에 대한 인스턴스 로그를 검토합니다. 로그에 액세스하는 방법에 대한 자세한 내용은 시스템 로그 정보을 참조하세요.
  4. 기본 설정을 일시적으로 복원하여 문제가 암호와 관련된지 확인합니다. 자세한 내용은 기본 암호 그룹 및 알고리즘 설정 복원을 참조하세요.
  5. 기본값을 복원한 후에도 문제가 지속되면 GitHub Enterprise 지원에 문의하세요.

기본 암호 그룹 및 알고리즘 설정 복원

기본 보안 암호 그룹 또는 알고리즘을 복원하려면 구성 값을 설정 해제합니다.

  1. 대상 GitHub Enterprise Server 인스턴스에 SSH합니다. 자세한 내용은 관리 셸(SSH)에 액세스을(를) 참조하세요.

    ssh -p 122 admin@HOSTNAME
    
  2. 구성 설정을 해제합니다. 기본값으로 복원하려는 설정의 이름으로 SETTING을(를) 바꾸세요.

    Shell
    ghe-config --unset github-ssl.SETTING
    

    예를 들어 기본 TLS 1.2 암호 그룹을 복원하려면 다음을 수행합니다.

    ghe-config --unset github-ssl.tlsv12-ciphersuites
    
  3. 구성을 적용하려면 다음 명령을 실행합니다.

    참고 항목

    구성을 실행하는 동안 의 서비스가 다시 시작될 수 있으므로 짧은 가동 중지 시간이 발생할 수 있습니다.

    Shell
    ghe-config-apply
    
  4. 구성 실행이 완료될 때까지 기다립니다.

  5. 사용자 메시지 또는 유지 관리 모드를 구성한 경우 메시지를 제거하고 유지 관리 모드를 사용하지 않도록 설정합니다.