«No volver a preguntar» ahorra avisos, pero guarda reglas.

Cuando en Claude Code haces clic en «Yes, and don't ask again», el comando aprobado se escribe como regla allow en .claude/settings.local.json. Si el comando contiene una contraseña de base de datos, SSH o claves de la nube, el texto original de las claves también acaba en el archivo; no es que al hacer clic se guarden necesariamente las claves, sino que esto solo ocurre si apruebas un comando que las contiene.

Por defecto, el archivo solo se incluye en las exclusiones globales locales; no en el .gitignore del repositorio. Si subes este archivo a un GitHub público desde un ordenador donde instalas billeteras o guardas claves privadas, la superficie de ataque se va con él.

Apiiro: 1.122 copias actuales contienen claves (1.379 tras deduplicarlas); al ampliar la búsqueda al historial, los settings compartidos y los registros de agentes, se encontraron 2.539 claves en 1.994 repositorios, pertenecientes a 63 organizaciones. Una organización confirmó que una clave de administrador de la nube seguía activa en ese momento. Aproximadamente una quinta parte de los escáneres habituales no detecta las claves en ninguno de los dos lados.

En tus propios repositorios: primero rota las claves y luego limpia el historial y los archivos rastreados. En los repositorios de otras personas, no exijas reescribir el historial sin más.

$BNB