Skip to content

WSL環境で認証情報の保存(Keyring)がエラーになる #34

@tknkaa

Description

@tknkaa

概要

WSL環境でこのツールを実行した際、Keyringへの値の保存時にエラーが発生し、動作が停止します。

原因

Linux版のKeyringライブラリは通常、OS標準の「Secret Service API (gnome-keyring等)」への接続(DBus経由)を試みます。
しかし、WSLのデフォルト環境ではGUIセッションやDBusデーモンが起動していないため、保存先が見つからずエラーとなります。

再現手順

  1. WSL (Ubuntu) 上でツールをビルド/実行する。
  2. ログイン処理など、Keyringへの書き込みが発生する操作を行う。
  3. 以下のエラーが出て落ちる。

エラー内容:

"No service"
または "The name org.freedesktop.secrets was not provided by any .service files"

解決策・修正案

keyring.Open の設定で、OS標準のサービスが使えない場合のフォールバック先として FileBackend を追加してください。

修正イメージ:

AllowedBackends: []keyring.BackendType{
    // まずはOS標準を試す
    keyring.SecretServiceBackend,
    keyring.KeychainBackend,
    keyring.WinCredBackend,
    
    // ダメだった場合(WSLなど)はファイルに保存する
    keyring.FileBackend, 
},

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions