gitlab-sshd를 사용한 인스턴스 수준 SSH 인증서
GitLab Self-Managed 인스턴스에서 gitlab-sshd를 통해 인스턴스 수준 SSH 인증서 인증을 구성하는 방법을 설명합니다.
히스토리 GitLab 18.11에서 도입되었습니다 . GitLab Self-Managed 인스턴스가 gitlab-sshd 를 사용한다면 인스턴스 수준 SSH 인증서 인증을 구성할 수 있습니다. 인증 기관(Certificate Authority, CA) 인증서로 SSH 인증을 중앙에서 관리합니다. Rails API 호출이나 데이터베이스 변경이 필요하지 않습니다. 이 방식은 OpenSSH의 TrustedUserCAKeys 지시어에 해당하는 gitlab-sshd 방식이며, OpenSSH 기반 SSH 인증서 설정 의 대안입니다. gitlab_sshd 인증 워크플로 # gitlab_sshd 인증 워크플로는 다음 과정을 따릅니다. 관리자가 CA 키 쌍을 생성합니다. 관리자가 config.yml 의 sshd.trusted_user_ca_keys 아래에 CA 공개 키 파일 경로를 추가합니다. 관리자가 CA 개인 키로 사용자의 SSH 공개 키에 서명합니다. 인증서의 KeyId 는 사용자의 GitLab 사용자 이름으로 설정됩니다. 사용자가 인증서로 연결하면 다음이 진행됩니다. gitlab-sshd 가 인증서 서명과 만료 여부를 검증합니다. gitlab-sshd 가 KeyId 를 추출해 GitLab 사용자 이름으로 사용합니다. 표준 GitLab 접근 확인이 진행됩니다(사용자 존재 여부, 프로젝트 권한). gitlab-sshd 프로세스는 인증서 검증 자체에 Rails API 나 데이터베이스 호출이 필요하지 않습니다. /allowed 엔드포인트는 다른 SSH 연결과 마찬가지로 인가를 위해 여전히 호출됩니다. 다른 SSH 인증서 방식과의 비교 # GitLab은 여러 SSH 인증서 인증 방식을 지원합니다. 속성 gitlab-sshd 구성 파일 Admin 영역(베타) OpenSSH 최상위 그룹 CA를 추가하는 위치 config.yml Admin 영역 또는 REST API sshd_config REST API SSH 서버 gitlab-sshd gitlab-sshd OpenSSH gitlab-sshd Offering GitLab Self-Managed GitLab Self-Managed GitLab Self-Managed GitLab.com Tier Free, Premium, Ultimate Free, Premium, Ultimate Free, Premium, Ultimate Premium, Ultimate 범위 인스턴스 전체 인스턴스 전체 인스턴스 전체 최상위 그룹과 그 하위 그룹 사용자 이름 매핑 인증서 KeyId 인증서 KeyId AuthorizedPrincipalsCommand 를 통한 인증서 KeyId API를 통한 인증서 ID 엔터프라이즈 사용자 필요 여부 아니요 아니요 아니요 예 문서 신뢰할 수 있는 CA 키 구성 Admin 영역에서 신뢰할 수 있는 CA 키 관리 OpenSSH AuthorizedPrincipalsCommand 그룹 SSH 인증서 사전 요구 사항 # 인스턴스 수준 SSH 인증서를 구성하기 전에 다음을 확인합니다. GitLab Self-Man