Claude Code에서 '다시 묻지 않음'을 선택했다면, 다음 푸시 전에 이 파일을 꼭 확인하세요
If you ever clicked “Yes, and don’t ask again” in Claude Code, check one file before your next push
핵심 요약
Claude Code의 '다시 묻지 않음' 설정이 명령어를 그대로 저장해 API 키 등 비밀 정보가 유출될 위험이 있습니다.
- 설정 파일 위험성 — Claude Code가 명령어를 .claude/settings.local.json에 평문으로 저장함
- 비밀 정보 유출 — 명령어에 포함된 API 키나 비밀번호가 깃허브 등에 그대로 노출될 수 있음
- 보안 조치 방법 — 해당 파일을 깃에서 제거하고 .gitignore에 추가한 뒤 키를 즉시 교체해야 함
- 사전 예방책 — 로컬 도구 설정 파일에 대한 pre-commit 검사를 도입하는 것이 권장됨
Claude Code에서 "Yes, and don’t ask again"으로 명령어를 승인하면, 그 명령어는 프로젝트 내 .claude/settings.local.json 파일에 토씨 하나 안 틀리고 그대로 저장돼서 다음부터는 안 물어봐. 만약 그 명령어에 비밀번호나 API 키가 포함되어 있었다면, 그것도 같이 저장되는 거지. Claude Code가 파일을 처음 생성할 때 알아서 전역 git ignore에 추가해주긴 하는데, 이미 git이 추적 중인 파일이거나 나중에 리포지토리로 바꾼 폴더, 혹은 팀원이 클론한 경우에는 적용이 안 돼.
Apiiro가 GitHub에 올라온 공개 파일들을 싹 다 스캔해봤는데, 무려 1,122개 파일에서 데이터베이스 비밀번호, GitHub 및 npm 토큰, AWS 키 같은 보안 정보들이 줄줄이 털리고 있었어.
파일에 뭐가 저장되어 있는지 확인하려면 아래 명령어를 쳐봐:
jq -r '.permissions.allow[]?' .claude/settings.local.json
목록을 쭉 훑어봐. 비밀번호, 토큰, 키 같은 게 보인다면 그게 다 파일에 그대로 박혀 있는 거야.
해결 방법은 간단해: git rm --cached .claude/settings.local.json 명령어를 실행하고, .gitignore에 해당 경로를 추가해. 만약 이미 비밀번호가 푸시된 상태라면, 당장 키를 새로 발급받아서 교체해. 기록에서 지우는 것만으로는 부족해.
이런 사고 사례들을 모아놓은 리스트는 여기서 볼 수 있어: https://node9.ai/incidents
