はじめに
Windows Subsystem for Linux(WSL)環境でCLIツールや開発環境からログインを行う際、ブラウザが自動で開かずに認証が進められないケースがあります。これは、WSL内のLinux環境がWindows側のブラウザと連携できていないことが原因です。本記事では、WSLでブラウザログインができない場合の主な解決方法を解説します。
主な解決方法
1. wslview
を使ってWindows側のブラウザを開く
最も簡単な方法は、wslu
パッケージに含まれる wslview
コマンドを利用することです。
sudo apt update && sudo apt install -y wslu
echo 'export BROWSER=wslview' >> ~/.bashrc
source ~/.bashrc
これでWSL内からWindows側の既定ブラウザを開けるようになります。
2. xdg-open
を wslview
に関連付ける
より汎用的な設定として、Linux側の xdg-open
コマンドを wslview
に置き換える方法があります。
sudo update-alternatives --install /usr/bin/xdg-open xdg-open /usr/bin/wslview 200
これにより、xdg-open https://example.com
を実行するとWindows側ブラウザが起動します。
3. ブラウザなしでログイン(デバイスコード方式)
ブラウザ連携が困難な環境では、デバイスコード方式が利用できます。
ツールによっては以下のようなオプションが用意されています。
<ツール名> login --no-browser
実行するとターミナルにURLと認証コードが表示されるので、Windows側のブラウザでURLを開き、コードを入力します。
トラブルシューティング
-
sudo
実行中はブラウザ連携が失敗しやすいため、一般ユーザー権限でログイン操作を行ってください。 - 企業や大学のネットワーク環境によっては
localhost
のポート転送が制限される場合があります。その場合はデバイスコード方式を使用します。 - WSLgが有効なWindows 11環境であれば、Linux側ブラウザ(Firefoxなど)を直接起動することも可能です。
まとめ
WSL環境でブラウザが起動しない場合は、
-
wslview
の利用 -
xdg-open
の設定変更 - デバイスコード方式の利用
のいずれかでほとんどのケースが解決できます。
これらの設定を行うことで、CLIツールや開発環境でのログイン作業がスムーズになります。