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) 인스턴스 수준 (OpenSSH) 그룹 수준 구성 위치 config.yml sshd_config GitLab API/UI SSH 서버 gitlab-sshd OpenSSH gitlab-sshd Offering GitLab Self-Managed GitLab Self-Managed GitLab.com Tier Free, Premium, Ultimate Free, Premium, Ultimate Premium, Ultimate 범위 인스턴스 전체(네임스페이스 제한 없음) 인스턴스 전체(네임스페이스 제한 없음) 최상위 그룹 사용자 이름 매핑 인증서 KeyId AuthorizedPrincipalsCommand를 통한 인증서 Key ID API를 통한 인증서 ID 엔터프라이즈 사용자 필요 여부 아니요 아니요 예 문서 이 페이지 OpenSSH AuthorizedPrincipalsCommand 그룹 SSH 인증서 사전 요구 사항 # 인스턴스 수준 SSH 인증서를 구성하기 전에 다음을 확인하세요: GitLab Self-Managed 인스턴스에 gitlab-sshd 가 활성화되어 있어야 합니다. 자세한 내용은 gitlab-sshd 활성화 를 참조하세요. CA 키를 생성하고 config.yml 을 편집하려면 서버 파일 시스템에 대한