当我用来运行任一命令时:
gcloud auth application-default login
或者对于特定的 docker 容器
docker exec -it 822c4c491383 /home/astro/google-cloud-sdk/bin/gcloud auth application-default login
。
我的命令行会给我一个谷歌响应页面的链接,我可以在其中复制他们给我的代码并将其写入命令行中。
现在由于某种原因,每当我尝试执行任一命令时,都会收到以下错误,说我无权访问网络浏览器。
您正在授权客户端库,而无需访问网络浏览器。请在带有网络浏览器的计算机上运行以下命令并 将其输出复制回此处。确保安装的 gcloud 版本是 372.0.0 或更高版本。
gcloud auth 应用程序-默认登录 --remote-bootstrap="https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=764086051850-6qr4p6gpi6hn506pt8ejuq83di341hur.apps.googleusercontent.com&scope=openid+https%3A %2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Faccounts.reauth&state =FmMFY6gvpOa9xndMXmWiNG3W1jDrCe&access_type=离线&code_challenge=zUI4n_pnYE5V7p0diDQLmL0X0Sk8XpTDzhz_vwtukOo&code_challenge_method=S256&token_usage=远程"
我尝试复制其中的链接并将其放入我的网络浏览器中,但我看到一个页面说。
错误400:无效请求缺少必需参数:重定向uri
编辑:虽然不确定为什么现在会发生这种情况,但我在两个命令的末尾添加了选项“--no-launch-browser”,它为我提供了现在手动放置在浏览器中并复制代码的链接。
在
gcloud >= 383.0.0
版本(2022 年 4 月 26 日)上,Google 删除了对其 CLI 上的 --console-only
和 --no-launch-browser
标志的支持。据我所知,他们没有给出原因,但这可能与安全有关。
在没有 Web 浏览器的计算机上进行身份验证的新预期方法是使用
--no-browser
标志并将其提供的命令复制到安装了 gcloud >= 372.0
和 Web 浏览器的计算机上。换句话说,不再可能纯粹在没有浏览器的机器上执行此操作。请参阅直接从其文档复制的以下步骤:
请按照以下步骤操作:
- 复制以
开头的长命令。gcloud auth login --remote-bootstrap="
- 在本地安装有网络浏览器和 gcloud CLI 版本 372.0 或更高版本的另一台受信任计算机的命令行上粘贴并运行此命令。
- 使用网络浏览器复制机器输出的长 URL。
- 根据提示
将长网址粘贴回第一台机器,然后按Enter the output of the above command
完成授权。Enter
使用
gcloud init --console-only
“--console-only”仍然有效,即使它已被弃用:
gcloud init --console-only
并且下面的“--no-launch-browser”仍然有效,即使它已被弃用:
gcloud init --no-launch-browser
下面的“--no-browser”还不起作用,但“--no-browser”将取代“--console-only”和“--no-launch-browser”所以将来,“--no-browser”将起作用,而“--console-only”和“--no-launch-browser”将来将不起作用:
gcloud init --no-browser
使用服务帐户授权 要授权使用服务帐户:
转到 Google Cloud 控制台中的服务帐号页面。
转到服务帐户
gcloud 身份验证登录 --cred-file=CONFIGURATION_OR_KEY_FILE
将 CONFIGURATION_OR_KEY_FILE 替换为以下其中一项的路径:
由于重定向 uri 不包含整个 URL,因此可能会发生这种情况。这可以通过调整 Custom URL Base 来解决。
结果将如下所示: https://my_company_artifactory:444/artifactory
您还应该仔细检查自定义 URL 基址和
/api/oauth2/loginResponse
是否包含在您的 Google OAuth 设置页面的授权重定向 URI 中。
查看更多信息,您可以将本地主机 URL 添加到重定向 URL,它会说目前不可能。在点击创建按钮之前设置重定向 URL 时,它会很好地接受它。