Claude Code · 2026년 9월 3일 ★★★★

앤트로픽 공식 문서가 클로드 코드 자격 증명을 평문 파일에 둔다고 못 박아 뒀어요 — 정작 키체인을 쓴다는 맥에도 27일짜리 갱신 토큰이 평문으로 남고 아무도 안 지워요

앤트로픽 공식 인증 문서는 클로드 코드가 리눅스에서 ~/.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

원본 보기 (hn:claude-code)