我找到了它们。它们在~/.config/gcloud/credentials中。我可以通过挂载它们docker run --rm -it -v ~/.config/gcloud:/root/.config/gcloud alpine:3.4 sh
,将默认凭据传递给我正在使用的 Docker 镜像。
Windows:
C:\Users\%用户名%\AppData\Roaming\gcloud\credentials
C:\Users\%用户名%\AppData\Roaming\gcloud\legacy_credentials
gcloud
和其他Google Cloud SDK工具(如bq
和gsutil
)使用的凭证存储在~/.config/gcloud/credentials.db
数据库中。然而,问题是关于应用程序默认凭证(ADC),而credentials.db
中的凭证不作为ADC的一部分使用。
gcloud auth application-default login
,它会在~/.config/gcloud/application_default_credentials.json
路径下创建凭证文件。gcloud auth login
(或gcloud auth activate-service-account
),它会在credentials.db
数据库中添加一个条目。这些不同的凭证不必验证相同的用户;使用gcloud auth login
登录不会启用ADC。
我写了一篇博客文章详细介绍了这个问题: GCP上的身份验证:应用程序默认凭证。
目前被接受的回答不再正确。
如今,正如John Hanley在 https://superuser.com/a/1508016/111814 中所描述:
你的凭据存储在
~/.config/gcloud
。凭证存储在该目录下的两个文件中:access_tokens.db 和 credentials.db。这两个文件都是 SQLite 数据库。
要查看内容,例如:sqlite3 ~/.config/gcloud/credentials.db .dump
官方文档中提到:
Linux,macOS: $HOME/.config/gcloud/application_default_credentials.json
Windows: %APPDATA%\gcloud\application_default_credentials.json
%AppData%\gcloud
。 - rustyx