Git - remote: The project you were looking for could not be found or you don't have permission to view it.
2023-07-20회사에서 운영 중인 프로젝트를 급하게 수정하고 배포해야 하는 상황이 생겼습니다. 작업을 완료하고 push까지 성공해서 모든 일이 끝났다고 생각했는데요. 갑자기 GitLab CI/CD에서 이런 오류가 발생했습니다.
remote: The project you were looking for could not be found or you don't have permission to view it.
fatal: repository '저장소주소' not found
시도했던 해결 방법들
1) 로컬 환경 문제인가?
처음에는 로컬 환경 문제라고 생각해서 로컬의 git origin 주소를 변경해봤습니다. 하지만 해결되지 않았죠.
2) GitLab Runner 문제인가?
다음으로 GitLab Runner에 문제가 있다고 생각해서 Runner를 재등록했습니다. 이것도 실패했습니다.
원인 발견
몇 시간 고민한 끝에 원인을 찾았는데요. 생각보다 간단한 문제였습니다.
EC2 서버의 git origin 설정을 업데이트하지 않았던 것이었습니다.
배포 환경이 EC2 + GitLab CI/CD로 구성되어 있었는데요. CI/CD 파이프라인이 실행될 때 EC2에서 저장소에 접근하려고 하는데, EC2에 설정된 git origin에 인증 정보가 포함되어 있지 않아서 권한 오류가 발생했던 것입니다.
해결 방법
EC2 서버에 접속한 후, git remote set-url origin 명령어를 사용해서 인증 정보가 포함된 URL로 변경해야 합니다.
잘못된 방법: 아이디/비밀번호 직접 포함
처음에 이렇게 해결했는데, 이후에 문제가 있다는 걸 알게 됐습니다.
# 이 방법은 보안상 위험합니다
https://깃랩아이디:비밀번호@gitlab.com/프로젝트/프로젝트명.git
아이디와 비밀번호를 URL에 직접 넣으면 git remote -v, CI/CD 로그, shell history에 그대로 노출됩니다. 서버를 여러 사람이 공유하거나, 로그를 외부 시스템에 수집하는 경우 유출 위험이 있습니다.
권장 방법 1: Deploy Token
GitLab에서 저장소 전용 Deploy Token을 발급받아 사용하세요. 범위를 읽기 전용으로 제한할 수 있고, 언제든 폐기 가능합니다.
- GitLab 저장소 → Settings → Repository → Deploy tokens에서 토큰 발급
- Scopes에서
read_repository선택 - EC2에서 remote URL 업데이트
git remote set-url origin \
https://gitlab+deploy-token-{토큰ID}:{토큰값}@gitlab.com/프로젝트/프로젝트명.git
권장 방법 2: SSH Key
# EC2에서 SSH 키 생성
ssh-keygen -t ed25519 -C "deploy-ec2"
# 공개 키 확인
cat ~/.ssh/id_ed25519.pub
공개 키를 GitLab 저장소 → Settings → Repository → Deploy keys에 등록한 후, remote를 SSH URL로 변경합니다.
git remote set-url origin git@gitlab.com:프로젝트/프로젝트명.git
두 방법 모두 실제 계정 비밀번호를 노출하지 않고 접근 범위를 제어할 수 있어 훨씬 안전합니다.
정리
GitLab CI/CD 오류가 발생하면 다음 순서로 확인해보세요:
- 로컬 환경의 git 설정
- GitLab Runner 상태
- 배포 서버(EC2)의 git origin 설정 (인증 정보 포함 여부)
배포 서버의 git 설정은 놓치기 쉬우니 주의하세요. 인증 정보를 추가할 때는 아이디/비밀번호 대신 Deploy Token이나 SSH Key를 사용하는 것을 권장합니다.