이중 인증 문제 해결
GitLab v19.5Offering: GitLab.com
요약
요청을 보낼 때 다음과 같은 오류가 발생할 수 있습니다. 이 오류를 해결하려면 다음 방법을 사용합니다. 올바른 스코프를 가진 개인 액세스 토큰을 사용합니다. 이 스코프는 레거시 개인 액세스 토큰에 적용됩니다. LDAP를 구성했다면 LDAP 비밀번호를 사용합니다.
오류: HTTP Basic: Access denied. If a password was provided for Git authentication ...#
요청을 보낼 때 다음과 같은 오류가 발생할 수 있습니다.
HTTP Basic: Access denied. If a password was provided for Git authentication,
the password was incorrect or you're required to use a token instead of a password.
If a token was provided, it was either incorrect, expired, or improperly scoped.
이 오류는 다음 경우에 발생합니다.
- 2FA를 활성화한 상태에서 사용자명과 비밀번호로 인증을 시도한 경우
- 2FA를 활성화하지 않았지만 GitLab 인스턴스에서 2FA가 필수인 경우. GitLab.com 이 여기에 해당합니다. 자세한 내용은 필수 MFA 변경 사항과 이메일 OTP 문제 해결을 참고합니다.
- 2FA를 활성화하지 않은 상태에서 잘못된 사용자명이나 비밀번호로 인증을 시도한 경우
- 2FA를 활성화하지 않았고 모든 사용자에게 2FA 적용 설정이 켜져 있는 경우
- 2FA를 활성화하지 않았고 Allow password authentication for Git over HTTP(S) 체크박스가 선택되어 있지 않은 경우
이 오류를 해결하려면 다음 방법을 사용합니다.
-
올바른 스코프를 가진 개인 액세스 토큰을 사용합니다.
- HTTP(S)를 통한 Git 요청:
read_repository또는write_repository - GitLab 컨테이너 레지스트리
요청:
read_registry또는write_registry - 의존성 프록시
요청:
read_registry및write_registry
이 스코프는 레거시 개인 액세스 토큰에 적용됩니다. 세분화된 개인 액세스 토큰은 대신 리소스와 권한을 사용합니다. 세분화된 방식의 대응 항목은 Git 및 기타 작업에 대한 세분화된 권한을 참고합니다. 세분화된 개인 액세스 토큰으로는 컨테이너 이미지를 푸시할 수 없습니다.
- HTTP(S)를 통한 Git 요청:
-
LDAP를 구성했다면 LDAP 비밀번호를 사용합니다.
-
OAuth 자격 증명 헬퍼를 사용합니다.
오류: invalid pin code#
invalid pin code 오류는 인증 애플리케이션과 GitLab 인스턴스 사이에 시간 동기화
문제가 있다는 뜻일 수 있습니다.
이 문제를 해결하려면 2FA 코드를 생성하는 기기에서 시간 동기화를 켭니다.
- Settings > System > Date & time으로 이동합니다.
- Set time automatically를 켭니다. 이미 켜져 있으면 껐다가 몇 초 기다린 뒤 다시 켭니다.
- Settings > General > Date & Time으로 이동합니다.
- Set Automatically를 켭니다. 이미 켜져 있으면 껐다가 몇 초 기다린 뒤 다시 켭니다.
오류: 복구 코드 생성 시 Permission denied (publickey)#
Permission denied (publickey)라는 오류가 발생할 수 있습니다.
이 문제는 기본 경로가 아닌 SSH 키 쌍 파일 경로를 사용하면서 SSH로 복구 코드를 생성하려고 할 때 발생합니다.
이 문제를 해결하려면 ssh-agent를 사용해 SSH가 다른 디렉터리를 가리키도록 구성합니다.
이메일 OTP 문제 해결#
이메일 OTP를 사용할 때 다음과 같은 문제가 발생할 수 있습니다.
2026년 4월부터 GitLab.com에서는 사용자명과 비밀번호를 사용하는 모든 로그인과 API 요청에 다중 요소 인증이 필수입니다. 다른 인증 요소를 구성하지 않은 경우 GitLab.com의 필수 두 번째 요소는 이메일 OTP 입니다.
향상된 인증 배너 및 패스코드 요구 사항#
Enhanced Authentication Coming Soon 배너는 비밀번호 기반 로그인 시 GitLab 이 해당 계정에 이메일 일회용 패스코드를 적용하기 시작한다는 신호입니다. SSO로 로그인하거나 이미 2FA를 구성한 사용자는 영향을 받지 않습니다.
이 배너는 적용 14일 전에 표시됩니다. 적용 7일 전부터는 비밀번호 기반 로그인을 할 때마다 GitLab 이 일회용 패스코드를 보냅니다. 이 기간에는 패스코드 입력을 건너뛸 수 있습니다.
적용일이 지나면 비밀번호 기반 로그인을 할 때마다 일회용 패스코드를 입력해야 합니다. 계정이 잠기지 않도록 기본 이메일 주소에 접근할 수 있는지 확인하거나 기본 이메일 주소를 변경합니다.
이메일 인증 코드를 받지 못했거나 코드가 만료된 경우#
이메일이 도착할 때까지 1분 정도 기다린 다음 스팸함을 확인합니다.
GitLab.com에서 보내는 이메일의 발신 주소는 gitlab@mg.gitlab.com 이며
정품 여부를 확인할 수 있습니다.
코드가 도착하지 않거나 만료되었다면 로그인 화면에서 Resend code를 선택합니다. 다시 보낼 때마다 새 코드가 생성되고 이전 코드는 무효화되므로, 다시 요청하기 전에 각 이메일이 도착할 때까지 기다립니다.
이메일 주소에 접근할 수 없는 경우#
기본 이메일 주소에 접근할 수 없다면 계정에 연결된 다른 주소로 코드를 보낼 수 있습니다.
연결된 이메일 주소에 모두 접근할 수 없다면 다음 방법을 사용합니다.
- 이전에 SSO를 구성했다면 사용자명과 비밀번호 대신 SSO로 로그인합니다.
- GitLab.com 엔터프라이즈 사용자라면 그룹 소유자에게 이메일 주소 변경을 요청합니다.
- GitLab Self-Managed에서는 GitLab 관리자에게 문의합니다.
- GitLab 지원팀에 문의합니다.
이메일 OTP를 활성화하거나 비활성화할 수 없는 경우#
다음 경우에는 이메일 OTP를 비활성화할 수 없습니다.
- 인스턴스에서 2FA가 필수인데 OTP 인증기나 WebAuthn 기기를 등록하지 않은 경우
- 계정이 향후 특정 날짜에 자동 활성화되도록 예약된 경우
다음 경우에는 이메일 OTP를 활성화할 수 없습니다.
- 그룹, 인스턴스 또는 관리자 정책에서 OTP 인증기나 WebAuthn 기기를 사용하도록 요구하는 경우
- 계정이 외부 ID 공급자를 사용하는 경우
- 계정이 향후 특정 날짜에 자동 활성화되도록 예약된 경우
복구 옵션 및 2FA 재설정#
복구 코드 사용#
일회용 비밀번호(OTP) 인증기를 활성화할 때 GitLab 이 여러 개의 복구 코드를 제공했습니다. 이 코드로 계정에 로그인할 수 있습니다.
복구 코드를 사용하려면 다음 단계를 수행합니다.
- GitLab 로그인 페이지에서 사용자명 또는 이메일과 비밀번호를 입력합니다.
- 2단계 인증 화면에서 Recover your account를 선택합니다.
- Enter account recovery code 화면에서 복구 코드를 입력한 다음 Verify code를 선택합니다.
한 번 사용한 복구 코드는 다시 사용할 수 없습니다. 나머지 복구 코드는 계속 유효합니다.
UI로 복구 코드 재생성#
계정에 여전히 접근할 수 있다면 사용자 설정에서 복구 코드를 다시 생성할 수 있습니다.
UI로 복구 코드를 다시 생성하려면 다음 단계를 수행합니다.
- 오른쪽 상단에서 아바타를 선택합니다.
- Edit profile을 선택합니다.
- 왼쪽 사이드바에서 Access > Password and authentication을 선택합니다.
- Recovery codes 섹션에서 Regenerate recovery codes를 선택합니다.
- 대화 상자에서 현재 비밀번호를 입력하고 Regenerate recovery codes를 선택합니다.
2FA 복구 코드를 다시 생성할 때마다 반드시 저장합니다. 이전에 생성한 2FA 코드는 사용할 수 없습니다.
SSH로 복구 코드 재생성#
GitLab 계정에 SSH 키를 추가했다면 SSH로 복구 코드를 다시 생성할 수 있습니다.
사전 요구 사항:
- GitLab 계정에 등록한 SSH 공개 키와 짝을 이루는 SSH 개인 키에 접근할 수 있어야 합니다.
gitlab-sshd 로는 복구 코드를 다시 생성할 수 없습니다.
SSH로 복구 코드를 다시 생성하려면 다음 단계를 수행합니다.
-
터미널에서 기기에 SSH 에이전트가 실행 중인지 확인합니다.
-
macOS와 Linux에서는 다음 명령을 실행합니다.
eval "$(ssh-agent -s)" -
Microsoft Windows에서는 PowerShell에서 다음 명령을 실행합니다.
Set-Service -Name ssh-agent -StartupType Automatic; Start-Service ssh-agent자세한 내용은 Windows 용 SSH 설정 방법을 참고합니다.
-
-
다음 명령으로 개인 키를 SSH 에이전트에 로드합니다.
-
macOS와 Linux에서는 다음 명령을 실행합니다.
ssh-add <path to private SSH key file>
자세한 내용은 다른 디렉터리의 SSH 키 사용을 참고합니다.
-
-
다음 명령으로 SSH 연결을 엽니다.
ssh git@gitlab.com 2fa_recovery_codesGitLab Self-Managed 인스턴스에서는
gitlab.com을 GitLab 서버 호스트명(gitlab.example.com)으로 바꿉니다. -
확인 메시지에
yes를 입력합니다. -
GitLab 이 생성한 복구 코드를 저장합니다. 이전 복구 코드는 더 이상 유효하지 않습니다.
-
로그인 페이지에서 사용자명 또는 이메일과 비밀번호를 입력합니다.
-
2단계 인증 화면에서 Recover your account를 선택합니다.
-
Enter account recovery code 화면에서 새 복구 코드 중 하나를 입력한 다음 Verify code를 선택합니다.
로그인한 뒤에는 즉시 새 기기로 2FA를 설정합니다.
인증기 백업에서 2FA 코드 복원#
GitLab 복구 코드 외에도 많은 인증기 앱이 자체 백업 및 복구 수단을 제공합니다. 기기를 분실하더라도 미리 백업 기능을 활성화해 두었다면 새 기기에서 인증기 앱에 로그인해 2FA 코드를 복원할 수 있습니다.
사전 요구 사항:
- 기기에 접근할 수 없게 되기 전에 인증기의 백업 기능을 활성화해야 합니다.
GitLab은 복구 코드를 기본 복구 수단으로 사용하기를 권장합니다. 2FA를 활성화할 때 복구 코드를 반드시 저장합니다.
GitLab 지원팀은 서드 파티 인증기 앱과 관련된 복구 문제를 지원하지 않습니다.
자세한 내용은 사용 중인 인증기 앱의 문서를 참고합니다. 많이 쓰이는 인증기의 문서는 다음 위치에서 확인할 수 있습니다.
계정에서 2FA 재설정#
앞의 복구 방법이 통하지 않으면 계정의 2FA를 비활성화해 달라는 지원 요청을 만들 수 있습니다. 이 서비스는 GitLab.com 구독이 있는 계정에서만 이용할 수 있습니다.
GitLab 지원팀은 Free 계정의 2FA를 재설정할 수 없습니다. 2FA 수단을 복구하지 못하면 계정에 영구적으로 접근할 수 없게 되어 새 계정을 만들어야 합니다. 자세한 내용은 블로그 공지를 참고합니다.
지원 요청을 만들려면 다음 단계를 수행합니다.
- GitLab 지원으로 이동합니다.
- Submit a Ticket을 선택합니다.
- GitLab 지원 계정으로 로그인합니다. 지원 계정은 GitLab 계정과 별개이며 2FA 문제의 영향을 받지 않습니다.
- 이슈 드롭다운 목록에서 GitLab.com user accounts and login issues를 선택합니다.
- 지원 양식의 항목을 입력합니다.
- Submit을 선택합니다.
계정에 다시 접근할 수 있게 되면 계정 보안을 유지하기 위해 가능한 한 빨리 2FA를 다시 활성화합니다.
엔터프라이즈 사용자의 2FA 재설정#
유료 플랜의 최상위 그룹 Owner 라면 엔터프라이즈 사용자의 2FA를 비활성화할 수 있습니다. 자세한 내용은 엔터프라이즈 사용자의 2FA 비활성화를 참고합니다.