티스토리 뷰

우리 회사에서는 IntelliJ, Git lab, HTTP 전용 서버, 내부망 환경에서 개발 작업을 진행한다.
지난주까지 잘 작업했는데 오늘 출근했더니 갑자기 IntelliJ에서 gitlab 계정 로그인 창이 반복해서 뜨면서 로그인이 되지 않는 것이었다.

두 시간 동안 씨름해 해결한 IntelliJ Git 연동 로그인 실패 오류 해결 방법을 정리해본다.

 

 


 

 

문제 상황 1 : 로그인 창에서 token 인증 실패

 

기존에 사용하던 (만료기간 많이 남은) token을 입력해도 fail, 

gitlab에서 모든 권한 추가한 토큰을 새로 생성해 입력해도 fail이 떴다.

 

 

 

문제 상황 2 : fetch, push 실패

 

나는 보통 IntelliJ의 GUI를 통해 commit, push 및 fetch를 진행하는데

fetch, push 모두 되지 않았고 로그인 창에서 cancle을 누르더라도 동일한 창이 반복적으로 노출됐다.

 

 

 

문제 상황 3 : 403 오류

 

Settings > Git Lab에서 내 계정을 확인해보니 아래와 같이 빨간 오류 메시지가 떴다.

HTTP Request Request Get http://[프로젝트주소]/api/v4/version failed with status code 403 and response body: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3c.org~~

 

403은 접근 권한 없음 (차단됨)의 의미
=> IntelliJ가 API 호출했는데 Gitlab API가 아니라 웹 로그인 페이지 HTML을 받아온 상태

 

 


 


해결 시도 1 : 다른 IDE에서 크로스 체크

 

동일 프로젝트를 VS Code로 열어 터미널에서 push를 했더니 정상 작동했다.
=> Git 자체에는 문제가 없음을 확인

 



해결 시도 2 : Git 실행파일 확인

 

VS Code와 IntelliJ가 서로 다른 Git 실행파일을 사용하는지 확인했다.
① IntelliJ에서 Settings > Version Control > Git으로 들어가 Path to Git executable 확인
② VS Code 터미널에서 아래와 같이 입력

where git


두 경로는 완벽히 동일했다. C:\Program Files\Git\cmd\git.exe
=> 두 IDE가 동일한 Git 실행파일 사용하는 것 확인

 

 

 

해결 시도 3 : 네트워크 문제인지 확인

 

브라우저에서 아래 주소를 열어봤다.

http://[프로젝트주소]/api/v4/version

 

version, revision, kas 정보 담은 JSON 파일이 떴다 (정상)

로그인 화면이 나올 경우 => 인증/SSO 문제

접속이 아예 되지 않으면 => 네트워크 문제

 



해결 시도 4 : git URL 방식 확인

 

프로젝트가 혹시 HTTPS인지, SSH인지 확인해보기로 했다.
intelliJ 터미널에서 아래와 같이 입력

git remote -v


http://주소 가 떴다.
=> 토큰 인증 문제일 가능성 확인
※ git@gitlab... <- 이 형식일 경우 토큰 필요 없고 SSH 키 설정 문제

 

 


해결 시도 5 : 자격 증명 삭제


IntelliJ에 저장된 인증 정보가 꼬였을 가능성도 있었다.
제어판 > 자격증명관리자 > Windows 자격 증명에서 git, gitlab, gitlab URL 관련 항목 전부 삭제 후 IntelliJ 완전 종료, 

다시 실행 후 Username에 회사 gitlab 아이디, Password에 새 토큰으로 로그인 하기

gpt가 추천했으나 혹시 몰라서 시도해보지는 않았다.
=> windows 자격 증명은 삭제하더라도 push하면 자동으로 재생성되므로 문제 없다고 함

 



해결 시도 6 : git test

 

IntelliJ에서 git test를 해봤다.
settings > version control > git에서 상단 Test 버튼 클릭해 git 실행 가능 여부와 버전을 확인했다.
Git version 2.37.0이 떴다.
=> Git 정상임을 다시 확인

 

 


해결 시도 7 : 터미널 push

 

git test가 성공한 것을 보고 IntelliJ 터미널에서 push를 실행해봤다.
당연히 안될 줄 알고 안해봤는데.. 터미널에서는 push가 되는 것이었다.
=> IntelliJ GUI 인증 모듈 문제임을 확인 (여기서 실패하면 git HTTP 인증 자체 문제일 가능성 있음)

 

※ gpt를 통해 얻은 정보 :

인텔리제이는 GUI에서 push 할 때 내부 Git API를 호출하고 자체 credential manager를 통해 인증을 시도,

여기서 실패하면 로그인 창을 반복 노출한다.

반면 터미널은 Windows credential helper 또는 git config에 저장된 토큰을 사용하므로 정상 인증이 된다.
=> GUI가 credential helper를 사용하지 않음에서 비롯된 문제 !

 

 


해결 시도 8 : git config 확인

 

IntelliJ에서 git 설정을 확인했다.

git remote -v
git config --list


remote origin URL 동일 (정상), credential.helper=manager-core 도 설정되어 있음을 확인했다.


이번엔 Settings > version control > Git에서 아래 체크박스를 체크했다.

Use credential helper

 


그후 작업관리자를 열어 IntelliJ를 완전 종료했다.

Ctrl + shift + Esc


그리고 다시 실행해 push 해보니 성공 !

 

 



연휴 잘 쉬고 출근하자마자 에러 떠서 오전 내내 고생했지만 해결되어서 다행이다 ㅎㅎ

 

공지사항