Debian WSL gcloud auth command open Windows 11 default browser

Для работы с Google Cloud Platform (GCP) чаще всего используется программный пакет Google Cloud SDK, в который входит набор различных библиотек (libraries) и инструментов командной строки (command line tools). Набор инструментов gcloud CLI предназначен для создания и управления ресурсами Google Cloud c помощью консольных команд.

Для того, чтобы начать пользоваться gcloud CLI, помимо установки и инициализации его конфигурации gcloud init (настройки деталей для работы с конкретным проектом в GCP), вам нужно авторизоваться: gcloud auth login — для доступа к созданию и управлению ресурсами Google Cloud или gcloud auth application-default login — для API доступа вашей локальной программы к ресурсам Google Cloud.

Пока Google Cloud SDK у меня была версии 336.0.0 (2021.04.09) это выглядело следующим образом:
$ gcloud auth login
Go to the following link in your browser:
https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=xxxxx.apps.googleusercontent.com&...&code_challenge_method=S256
Enter verification code:

Я копировал полученную ссылку в браузер, авторизировался, жамкал кнопку allowed, после чего вставлял полученный код обратно в командную строку.

В недавнем времени, после очередного обновления программного пакета Google Cloud SDK на версию 378.0.0 (2022.03.18) — я столкнулся с проблемой авторизации через описанный выше метод:
$ gcloud auth login
You are authorizing gcloud CLI without access to a web browser. Please run the following command on a machine with a web browser and copy its output back here. Make sure the installed gcloud version is 372.0.0 or newer.
gcloud auth login --remote-bootstrap="https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=xxxxx.apps.googleusercontent.com&...&code_challenge_method=S256&token_usage=remote"
Enter the output of the above command:

Дальше я попытался запустить полученную ссылку с ключом --remote-bootstrap:
$ gcloud auth login --remote-bootstrap="https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=xxxxx.apps.googleusercontent.com&...&code_challenge_method=S256&token_usage=remote"
ERROR: (gcloud.auth.login) Cannot launch browser. Please run this command on a machine where gcloud can launch a web browser.

Но, как Вы моджете наблюдать, получил совершенно однозначную ошибку.

P.S. Кстати, комманду gcloud auth login --no-browser я тоже пробовал — этот ключ не даёт ровным счётом ничего.

Решение

Ничего умнее, чем установить через JavaScript NPM программу wsl-open и прикрутить её в .bashrc вашего профиля — я не придумал.

wsl-open — это программа, позволяющая открывать файлы через командную строку Windows Subsystem for Linux (WSL) в Windows GUI приложениях.

Если не установлен установщик пакетов NPM:
$ sudo apt update
$ sudo apt install npm

Устанавливаем саму программу wsl-open:
sudo npm install -g wsl-open

Добавляем в файл .bashrc следующее:

# Adding wsl-open as a browser for Bash using Windows GUI
export DISPLAY=:0
if [[ $(uname -r) =~ (m|M)icrosoft ]]; then
  if [[ -z $BROWSER ]]; then
    export BROWSER=wsl-open
  else
    export BROWSER=$BROWSER:wsl-open
  fi
fi

Теперь при вызове команды gcloud auth login или gcloud auth application-default login — Вас автоматически перекинет в окно браузера, настроенного в Windows 11 по-умолчанию.

Обсуждение закрыто.