2

因此,当我使用标准 debian 7 映像启动 GCE 实例并发出“gsutil config”命令时,它会失败并显示以下消息:

jcortez@master:~$ gsutil config Failure: No handler was ready to authenticate. 4 handlers were checked. ['ComputeAuth', 'OAuth2Auth', 'OAuth2ServiceAccountAuth', 'HmacAuthV1Handler'] Check your credentials.

我已经在 debian 6 和 centos 实例上尝试过,并且得到了相同的结果。但是,发出“gcutil config”可以正常工作。我收集我需要设置我的 ~/.boto 文件,但我不知道该怎么做。

我究竟做错了什么?

4

4 回答 4

4

使用E. Anderson提到的服务帐户范围是在 Compute Engine 上使用 gsutil 的推荐方法,因此图像被配置为从 /etc/boto.cfg 中的元数据服务器获取 OAuth 访问令牌:

[GoogleCompute]
service_account = default

如果您想自己管理 gsutil 配置,请重命名 /etc/boto.cfg,并且gsutil config应该可以:

$ sudo mv /etc/boto.cfg /etc/boto.cfg.orig
$ gsutil config
This script will create a boto config file at
/home/<...snipped...>/.boto
containing your credentials, based on your responses to the following questions.
<...snip...>
于 2013-07-12T21:05:38.087 回答
1

您是否尝试使用服务帐户访问 Cloud Storage 而无需输入凭据?

听起来 gsutil 正在搜索具有适当范围的 OAuth 访问令牌,但没有找到。您可以通过在启动 VM 时请求storage-rw或权限来确保您的 VM 可以访问 Google Cloud Storage ,或者通过在 UI 控制台的“项目访问”下选择适当的权限。对于,类似以下的内容应该可以工作:storage-fullgcutilgcutil

> gcutil addinstance worker-1 \  
> --service_account_scopes=https://www.googleapis.com/auth/devstorage.read_write,https://www.googleapis.com/auth/compute.readonly
于 2013-07-12T18:14:39.780 回答
1

当您配置 GCE 实例时,您是否使用配置的服务帐户进行设置?当您在已经配置了服务帐户凭据的情况下尝试运行 gsutil config 时,旧版本的 gsutil 会感到困惑。

如果您已经配置了服务帐户,则不需要运行 gsutil config - 您应该能够简单地运行 gsutil ls、cp 等(它将使用位于 ~/.boto 文件之外的其他位置的凭据)。

如果您确实想运行 gsutil 配置(例如,设置与您的登录身份相关联的凭据,而不是服务帐户凭据),您可以尝试从http://storage.googleapis.com/pub/gsutil下载当前 gsutil .tar.gz,解压并运行 gsutil 的副本。请注意,如果您这样做,您通过运行 gsutil config 创建的个人凭据将基本上“隐藏”您的服务帐户凭据(即,如果您想再次使用您的服务帐户凭据,则需要将 .boto 文件移到一边) .

Mike Schwartz,谷歌云存储团队

于 2013-07-12T18:15:52.080 回答
1

仅供参考,我现在正在对 gsutil 进行一些更改,以更顺利地处理您遇到的问题。该版本应该会在接下来的一两周内发布。

麦克风

于 2013-07-15T01:49:43.623 回答