Gcloud身份验证登录保存到legacy_credentials文件夹

msj*_*121 1 authentication gcloud

我不知道为什么,但是我正在运行gcloud auth login,我尝试了beta和默认应用程序。它们都不创建file ~/.config/gcloud/credentials:,而是可以找到~/.config/gcloud/legacy_credentials

我遇到的问题是我正在使用的库不想要legacy_credentials,并且重命名该文件夹不起作用。

这是我的设置:

Google Cloud SDK 183.0.0
alpha 20
17.12.08
beta 2017.12.08
bq 2.0.27
core 2017.12.08
gsutil 4.28
Run Code Online (Sandbox Code Playgroud)

Ubuntu 16.04.3 LTS也在digitalocean上使用。我很乐意提供我能想到的任何其他信息。

旧版文件夹中的凭据包含:

" ============================================================================
" Netrw Directory Listing                                        (netrw v155)
"   /root/.config/gcloud/legacy_credentials/matt@mindbrainhive.org
"   Sorted by      name
"   Sort sequence: [\/]$,\<core\%(\.\d\+\)\=\>,\.h$,\.c$,\.cpp$,\~\=\*$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$
"   Quick Help: <F1>:help  -:go up dir  D:delete  R:rename  s:sort-by  x:special
" ==============================================================================
../                                                                                                                                                                                       
./
.boto
adc.json
Run Code Online (Sandbox Code Playgroud)

che*_*rba 5

gcloud不再使用~/.config/gcloud/credentials,而是将凭据存储在sqlite3中~/.config/gcloud/credentials.db

这些凭据文件被认为是内部的gcloud,它们可以随时更改。您不应该使用它们。您可能要使用的是

gcloud auth application-default login
Run Code Online (Sandbox Code Playgroud)

代替gcloud auth login。前者将为~/.config/gcloud/application_default_credentials.json用户登录帐户创建密钥文件。

也就是说,根据您要执行的操作,您可能想使用服务帐户(而不是用户帐户)。您可以通过以下方式创建密钥文件

gcloud iam service-accounts keys create
Run Code Online (Sandbox Code Playgroud)

请参阅文档以获取更多信息。或者,您可以使用Google Cloud Platform Console创建密钥文件。

获取JSON密钥文件后,您可以在应用程序中将其用作应用程序默认凭据,请参阅https://developers.google.com/identity/protocols/application-default-credentials#howtheywork

您也可以gcloud通过gcloud auth activate-service-account命令使用此键。