Skip to main content

이 버전의 GitHub Enterprise는 다음 날짜에 중단되었습니다. 2024-03-26. 중요한 보안 문제에 대해서도 패치 릴리스가 이루어지지 않습니다. 더 뛰어난 성능, 향상된 보안, 새로운 기능을 위해 최신 버전의 GitHub Enterprise Server로 업그레이드합니다. 업그레이드에 대한 도움말은 GitHub Enterprise 지원에 문의하세요.

SSH 인증 기관 정보

SSH 인증 기관을 사용하면 조직 또는 엔터프라이즈 계정이 멤버가 Git을 사용하여 리소스에 액세스하는 데 사용할 수 있는 SSH 인증서를 제공할 수 있습니다.

SSH 인증 기관 정보

SSH 인증서는 한 SSH 키가 다른 SSH 키에 서명하는 메커니즘입니다. SSH CA(인증 기관)를 사용하여 조직 멤버에게 서명된 SSH 인증서를 제공하는 경우 조직 멤버가 인증서를 사용하여 조직 리소스에 액세스할 수 있도록 엔터프라이즈 계정 또는 조직에 CA를 추가할 수 있습니다.

조직 또는 엔터프라이즈 계정에 SSH CA를 추가한 후 CA를 사용하여 조직 멤버에 대한 클라이언트 SSH 인증서에 서명할 수 있습니다. 조직 멤버는 서명된 인증서를 사용하여 Git을 통해 조직의 리포지토리(및 조직의 리포지토리만)에 액세스할 수 있습니다. 필요에 따라 멤버가 SSH 인증서를 사용하여 조직 리소스에 액세스하도록 요구할 수 있습니다. 자세한 내용은 "조직의 SSH 인증 기관 관리" 및 "엔터프라이즈에서 보안 설정에 대한 정책 적용"을(를) 참조하세요.

예를 들어 매일 아침, 개발자에게 새 인증서를 발급하는 내부 시스템을 빌드할 수 있습니다. 각 개발자는 일일 인증서를 사용하여 GitHub Enterprise Server에서 조직의 리포지토리에 대해 작업을 수행할 수 있습니다. 하루가 끝나면 인증서가 자동으로 만료되므로 나중에 인증서가 손상되더라도 리포지토리를 보호할 수 있습니다.

멤버는 자신의 인증서를 사용하여 개인용 계정이 소유한 리포지토리의 포크에 액세스할 수 없습니다.

SSH 인증서를 사용하는 SSH URL 정보

조직에 SSH 인증서가 필요한 경우 인증 오류를 방지하기 위해 조직 멤버는 SSH를 통해 Git 작업을 수행할 때 조직 ID가 포함된 특수 URL을 사용해야 합니다. 이 특수 URL을 사용하면 클라이언트와 서버가 인증에 사용해야 하는 멤버 컴퓨터의 키를 보다 쉽게 협상할 수 있습니다. 멤버가 git@github.com으로 시작된 일반 URL을 사용하는 경우 SSH 클라이언트가 잘못된 키를 제공하여 작업이 실패할 수 있습니다.

리포지토리에 대한 읽기 권한이 있는 사용자는 리포지토리의 기본 페이지에서 코드 드롭다운 메뉴를 선택한 다음, SSH 사용을 클릭하여 이 URL을 찾을 수 있습니다.

조직에 SSH 인증서가 필요하지 않은 경우 멤버는 자신의 SSH 키 또는 기타 인증 방법을 계속 사용할 수 있습니다. 이 경우 특수 URL 또는 git@github.com으로 시작된 일반 URL이 적절합니다.

인증서 발급

각 인증서를 발급할 때 해당 인증서가 대상으로 삼는 GitHub Enterprise Server 사용자를 지정하는 확장을 포함해야 합니다. 예를 들어 OpenSSH의 ssh-keygen 명령을 사용하여 KEY-IDENTITY를 키 ID로, 사용자 이름을 GitHub Enterprise Server 사용자 이름으로 바꿀 수 있습니다. 생성하는 인증서에는 조직의 리소스에 대해 해당 사용자를 대신하여 작업할 수 있는 권한이 부여됩니다. 인증서를 발급하기 전에 사용자 ID의 유효성을 검사해야 합니다.

참고: 이러한 명령을 사용하려면 OpenSSH 7.6 이상으로 업데이트해야 합니다.

ssh-keygen -s ./ca-key -V '+1d' -I KEY-IDENTITY -O extension:login@HOSTNAME=USERNAME ./user-key.pub

경고: 인증서가 서명되고 발급된 후에는 인증서를 해지할 수 없습니다. -V 플래그를 사용하여 인증서의 수명을 구성해야 합니다. 그렇지 않으면 인증서를 무기한 사용할 수 있습니다.

SSH를 사용하여 여러 GitHub 제품에 액세스하는 사용자를 위해 인증서를 발급하려면 두 개의 로그인 확장을 포함하여 각 제품의 사용자 이름을 지정할 수 있습니다. 예를 들어, 다음 명령은 GitHub Enterprise Cloud에 대한 사용자 계정의 USERNAME-1에 대한 인증서를 발급하고 HOSTNAME의 GitHub Enterprise Server에 대한 사용자 계정의 USERNAME-2에 대한 인증서를 발급합니다.

ssh-keygen -s ./ca-key -V '+1d' -I KEY-IDENTITY -O extension:login@github.com=USERNAME-1 extension:login@HOSTNAME=USERNAME-2 ./user-key.pub

source-address 확장을 사용하여 조직 멤버가 조직의 리소스에 액세스할 수 있는 IP 주소를 제한할 수 있습니다. 이 확장은 CIDR 표기법을 사용하여 특정 IP 주소 또는 IP 주소 범위를 허용합니다. 값을 쉼표로 구분하여 여러 주소 또는 범위를 지정할 수 있습니다. 자세한 내용은 Wikipedia에서 "Classless Inter-Domain Routing"을 참조하세요.

ssh-keygen -s ./ca-key -V '+1d' -I KEY-IDENTITY -O extension:login@HOSTNAME=USERNAME -O source-address=COMMA-SEPARATED-LIST-OF-IP-ADDRESSES-OR-RANGES ./user-key.pub