oauth-2.0 尝试使用'gcloud init'进行身份验证时出错

kcugc4gi  于 2022-10-31  发布在  其他
关注(0)|答案(5)|浏览(210)

我正在尝试使用以下方法对gcloud sdk进行身份验证:gcloud init .
我得到了一个URL,我应该访问该URL以复制令牌并将其返回到CLI...但我得到的不是令牌,而是以下错误:

Erreur d'autorisation
Erreur 400 : invalid_request
Missing required parameter: redirect_uri

这是一个错误吗?
gcloud version信息:

Google Cloud SDK 377.0.0
alpha 2022.03.10
beta 2022.03.10
bq 2.0.74
bundled-python3-unix 3.8.11
core 2022.03.10
gsutil 5.8

我正在wsl2(Ubuntu 18.04)上运行gcloud init。这个错误发生在安装了带有sudo apt install google-cloud-sdk的gcloud之后。

cgh8pdjw

cgh8pdjw1#

我遇到了同样的问题,gcloud稍微改变了他们的auth流的工作方式。
运行gcloud auth login,然后将整个输出(而不仅仅是URL)复制到安装了Web浏览器和gcloud CLI的计算机上的终端。

gcloud auth login --remote-bootstrap="https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=****.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%2Fappengine.admin+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcompute+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Faccounts.reauth&state=****&access_type=offline&code_challenge=****&code_challenge_method=S256&token_usage=remote"

当您在装有Web浏览器的计算机上运行该应用程序时,它将打开一个浏览器窗口并提示您登录。在Web浏览器中对应用程序进行授权后,您将在终端中获得一个新的URL,如下所示

https://localhost:8085/?state=****&code=****&scope=email%20openid%20https://www.googleapis.com/auth/userinfo.email%20https://www.googleapis.com/auth/cloud-platform%20https://www.googleapis.com/auth/appengine.admin%20https://www.googleapis.com/auth/compute%20https://www.googleapis.com/auth/accounts.reauth&authuser=0&hd=****&prompt=consent

将这个新的URL粘贴回headless机器的提示符中Enter the output of the above command:之后(在本例中,这将是在WSL2终端中)。

You are now logged in as [****].
Your current project is [None].  You can change this setting by running:
  $ gcloud config set project PROJECT_ID
[8]+  Done                    code_challenge_method=S256
busg9geu

busg9geu2#

尝试

gcloud init --console-only

然后你会得到的网址将工作。

You must log in to continue. Would you like to log in (Y/n)?  y                                                                                                                                                                                                                                                                                                                                                                                                                       
WARNING: The --[no-]launch-browser flags are deprecated and will be removed on June 7th 2022 (Release 389.0.0). Use --no-browser to replace --no-launch-browser.                                                                                                                                                                                                                                                                                                                      
Go to the following link in your browser:                                                                                                                                                                                                                                                                                                                                                                                                                                                 

https://accounts.google.com/o/o....

更新日期2022-06-20.版本389.0.0中删除了选项console-only因此,请使用

gcloud init --no-browser
nkhmeac6

nkhmeac63#

有一些解决方法,它们取决于您的特定Windows环境。
this postthis中,您可以检查与在WSL中运行的gcloud有关的最相关的问题。
Here您可以找到一些与Google群组相关的线程,可能会有所帮助。
最后,您可以检查一些相关的Windows疑难解答,这些疑难解答可以帮助解决您自己的环境中与WSL2相关的问题。

vjhs03f7

vjhs03f74#

编辑:

看起来this answerthe one from @K.I.给予了其他不依赖于实现细节的命令。

gcloud init --console-only

gcloud auth login --no-launch-browser

gcloud init --no-launch-browser

原始答案,另一种解决方案(2022年7月17日):

DISPLAY=":0" gcloud auth login

this issue中提到的一种解决方法。它不要求您在WSL2外部安装gcloud CLI,而是假装有一个浏览器。
打印出一个链接,单击该链接,登录浏览器,然后通过CLI进行身份验证。
然后再次运行gcloud init

raogr8fs

raogr8fs5#

您可以使用另一种gcloud安装方法来执行此操作,而不会出现错误:
curl 度https://sdk.cloud.google.com|猛击
exec -l $SHELL #重新启动shell
云初始化

相关问题