VS Code를 켤 때마다 git-credential-osxkeychain이 키체인 암호를 입력하라는 창이 뜬다면, git이 GitHub 비밀번호를 키체인에서 꺼내 쓰려는데 macOS가 그 프로그램을 알아보지 못해서 매번 허락을 받는 거예요. 원인과 해결 방법을 차례로 정리해 볼게요.
원인 확인하기
실제 환경을 확인해 보면 이런 상황이에요.
- 지금 쓰는 git은 Homebrew로 설치한 것이에요 (
/usr/local/bin/git2.56.0). - 비밀번호를 꺼내는 프로그램은
/usr/local/opt/git/libexec/git-core/git-credential-osxkeychain이에요. 이 파일은 코드 서명이 아예 없고, 확인해 보니 10월 1일에 새 버전으로 바뀌어 있었어요. - VS Code는 켜지자마자 자동으로
git fetch를 실행해요. 이때 키체인에 저장된 github.com 비밀번호가 필요해져요.
왜 매번 다시 뜰까요
- 키체인 항목마다 "꺼내 가도 되는 프로그램" 목록이 붙어 있어요. 서명된 프로그램은 서명으로 알아보지만, 서명이 없는 프로그램은 파일 내용 자체로 알아봐요.
- 그래서
brew upgrade로 git 파일이 바뀌면 예전에 허락해 둔 프로그램과 "다른 프로그램"이 돼요. 창에 뜬 "인증을 확인할 수 없습니다"가 바로 이 상황이에요. - 그냥 허용을 누르면 그 한 번만 통과해요. 그래서 VS Code를 켤 때마다 다시 떠요.
해결 방법
1. 항상 허용하기 (가장 간단)
창에 Mac 로그인 암호를 넣고 항상 허용을 누르세요. 바뀐 프로그램이 허락 목록에 들어가서 더는 뜨지 않아요. 다만 다음에 brew upgrade로 git이 업데이트되면 한 번 다시 떠요.
2. 서명된 프로그램으로 인증 맡기기
업데이트 뒤에도 뜨지 않게 하려면, 서명된 다른 프로그램이 비밀번호를 관리하도록 바꾸면 돼요. gh CLI가 있다면 아래처럼 설정하세요.
gh auth login # gh CLI 로그인
gh auth setup-git # 앞으로 GitHub 인증은 gh가 맡음GitHub의 Git Credential Manager를 써도 돼요.
brew install --cask git-credential-manager3. 자동 fetch 끄기
덜 뜨게만 하려면 VS Code 설정에서 자동 fetch를 끄면 돼요. 대신 원격 저장소의 변경 사항은 직접 받아와야 해요.
{
"git.autofetch": false
}참고: 원격 저장소가 없는 프로젝트라면
지금 열어 둔 프로젝트에 원격 저장소가 없다면 이 창과는 상관이 없어요. VS Code에 함께 열려 있는 다른 GitHub 저장소가 자동 fetch를 하면서 뜨는 것으로 보면 돼요.
마치며
먼저 1번(항상 허용)을 해 보시고, git을 업데이트한 뒤에 다시 뜨면 2번(gh 또는 Git Credential Manager)으로 바꾸는 걸 추천해요. 서명된 프로그램이 인증을 맡으면 git 업데이트와 상관없이 창이 다시 뜨지 않아요.
