앤트로픽 공식 인증 문서는 클로드 코드가 리눅스에서 ~/.claude/.credentials.json 에 0600 으로, 윈도우에서는 사용자 폴더 권한을 그대로 물려받은 같은 이름 파일에 자격 증명을 둔다고 적어 뒀고, 맥도 키체인이 쓰기를 거부하면 리눅스와 같은 그 평문 파일로 떨어진다고 폴백까지 명시해 뒀어요. 정작 같은 회사 MCP 문서는 '인증 토큰은 안전하게 저장되고 자동으로 갱신된다'고만 적어 둬서 두 문서의 말이 어긋나요. 그 폴백이 문서 속 예외로 그치지 않는다는 신고도 열린 채인데, 9월 1일 올라온 이슈 두 건은 키체인을 쓴다는 맥에서도 27일짜리 갱신 토큰이 평문 파일에 남아 클라이언트가 영영 안 지운다고 재현을 붙였고, 8월 27일 올라와 어제 갱신된 또 다른 이슈는 앤트로픽 자체 security-guidance 플러그인이 그 파일의 접근·갱신 토큰을 통째로 대화 기록에 뱉는다고 적어 뒀어요.
- OAuth
- 비밀번호를 넘기지 않고 접근 권한만 내주는 인증 표준. 발급된 토큰이 열쇠 역할을 한다.
- MCP
- Model Context Protocol. 에이전트가 외부 도구·데이터에 붙는 표준 규약.
- 0600
- 파일 권한 표기. 파일 주인만 읽고 쓸 수 있고 같은 컴퓨터의 다른 계정은 못 연다.
- apiKeyHelper
- 클로드 코드가 API 키를 받아 오려고 실행하는 사용자 지정 스크립트 설정. 금고에서 짧은 수명 토큰을 가져올 때 쓴다.
0600 은 다른 계정만 막을 뿐 내 권한으로 도는 것(훅·플러그인·백업·홈 설정 저장소)은 못 막아요 — ~/.claude 를 git 으로 관리한다면 .credentials.json 을 무시 목록에 먼저 넣고, 금고에서 자격 증명을 받아 오는 공식 통로는 apiKeyHelper 하나뿐인데 그건 API 키 인증에만 걸려서 구독 /login 으로 쓰는 팀엔 지금 대안이 없어요.
- 같은 회사 다른 문서 — 표현이 어긋나요 MCP 문서엔 '인증 토큰은 안전하게 저장되고 자동으로 갱신된다'고 적혀 있고, 클라이언트 시크릿은 '맥에서는 시스템 키체인, 아니면 자격 증명 파일'이라고만 갈라 놨어요. Anthropic
- 이 저장 방식을 문제 삼은 글 시크릿스펙(SecretSpec)을 만든 도멘 코자르가 9월 2일 '평문 저장은 OAuth 가 대신 풀어 주는 문제가 아니다'라며 문제를 제기한 글이에요 — 다만 인용한 경로와 권한은 공식 문서에 적힌 값 그대로고 결론은 자기 도구 SDK 를 자격 증명 저장소로 붙여 달라는 제안이라, 홍보 성격을 감안해 읽어야 해요. SecretSpec
- 맥도 예외가 아니에요 맥에서 키체인엔 claudeAiOauth 항목이 없는데 평문 파일엔 만료 안 된 맥스 구독 토큰이 남아 진단이 '정상'으로 잘못 뜬 사례예요 — 클라이언트가 쓰지도, 갱신하지도, 지우지도 않는 살아 있는 갱신 토큰이래요. GitHub
- 27일짜리 갱신 토큰이 키체인 대신 평문으로 맥에서 갱신 토큰이 키체인이 아니라 0600 평문 파일에 쓰였고, 키체인엔 'Claude Code-credentials' 항목이 1,306개까지 쌓여 전체 서비스의 90.6%를 차지했다는 재현 신고예요. GitHub
- 앤트로픽 자체 플러그인이 그 토큰을 대화 기록에 뱉어요 security-guidance 플러그인이 세션 끝 검토에서 .credentials.json 의 accessToken·refreshToken 을 통째로 대화 기록에 실어요 — ~/.claude 를 git 으로 두는 사람이 많은데 검토가 추적 안 되는 파일까지 일부러 끌어와서 생긴 일이고, 토큰이 갱신될 때마다 다시 뱉어요. GitHub