LinuxでVS Codeの「Writing login information to the keychain failed」エラーを修正する

intermediate💻 VS Code2026-07-11| Linux (Ubuntu, Debian, Arch, Fedora), VS Code 1.80+, GitHub Pull Requests and Issues 拡張機能

Error Message

Writing login information to the keychain failed. Error: The name org.freedesktop.secrets was not provided by any .service files
#linux#vscode#github#keychain-error

問題の概要Linux上でGitHubアカウントをVS Codeと同期しようとすると、ログインに成功する代わりに「Writing login information to the keychain failed」というしつこい通知が表示されることがあります。ログを確認すると、org.freedesktop.secrets に関する具体的なエラーが出力されているはずです。これは通常、VS Codeが認証トークンを保存するための安全な場所を見つけられないために発生します。

原因VS Codeは、GitHubトークンを安全に保管するために secret-storage APIに依存しています。Linuxでは、このAPIは Freedesktop Secret Service 仕様に準拠したシステムレベルのサービスを探します。通常、これは GNOME Keyring または KWallet です。

このエラーは、VS Codeが DBus 経由でリクエストを送信しても応答がない場合に発生します。これは、キーリングデーモンがデフォルトで起動しない i3、Sway、Openbox などの最小限の構成を使用している開発者によく見られる問題です。また、ネイティブのLinuxグラフィカルインターフェースを持たないヘッドレスサーバーや WSL2 環境でも発生します。

解決策 1: GNOME Keyring のインストールと初期化最も堅牢な修正方法は、GNOME Keyring サービスをインストールすることです。GNOME デスクトップ環境を使用していなくても、このサービスは VS Code が必要とする org.freedesktop.secrets インターフェースを提供します。

1. パッケージの取得ターミナルを開き、ディストリビューションに基づいて必要なライブラリをインストールします。

Ubuntu、Debian、または Linux Mint:

sudo apt update
sudo apt install gnome-keyring libsecret-1-0

Arch Linux:

sudo pacman -S gnome-keyring libsecret

Fedora:

sudo dnf install gnome-keyring libsecret

2. デーモンの自動起動i3 や bspwm などのウィンドウマネージャーを使用している場合、キーリングは自動的に起動しません。ログイン時に起動するように設定する必要があります。以下のスニペットを .xinitrc またはウィンドウマネージャーのスタートアップ設定に追加してください。

eval $(/usr/bin/gnome-keyring-daemon --start --components=secrets) 
export SSH_AUTH_SOCK

解決策 2: VS Code の内部ストレージ設定を調整するシステム全体のキーリングをインストールできない、またはインストールしたくない場合があります。その場合、VS Code にシークレットの処理方法を変更するように指示できます。これは DBus の要件を完全に回避する迅速な修正方法です。

  • VS Code を起動します。- Ctrl + , を押して設定を開きます。- 検索バーに password と入力します。- Window: Password Store 設定を見つけます。- ドロップダウンを gnome-libsecret から basic に切り替えます。注意: basic 設定では、トークンは ~/.config/Code/User/globalStorage/ にある暗号化されていない JSON ファイルに保存されます。このオプションは、ローカルドライブがすでに暗号化されている場合(例: LUKS を使用)や、安全でプライベートな環境で作業している場合にのみ選択してください。

解決策 3: DBus セッションのハンドシェイクを修正するキーリングがインストールされているのに VS Code がそれを認識できない場合、DBUS_SESSION_BUS_ADDRESS が誤って設定されている可能性があります。新しい DBus セッション内で VS Code を起動することで、これをテストできます。

ターミナルから以下のコマンドを実行します:

dbus-run-session -- code

これで VS Code が正常にログインできた場合、問題はセッション管理にあります。~/.bashrc~/.zshrc を確認し、誤って DBus 変数を上書きしていないか確認してください。

解決策 4: WSL2 での回避策WSL2 ユーザーは、Linux サブシステムが存在しない Linux キーリングを探そうとするため、この問題によく直面します。Linux 側のキーリングと格闘する代わりに、Windows Git Credential Manager (GCM) を使用して橋渡しをします。

  • Windows ホストに Git for Windows がインストールされていることを確認します。- WSL ターミナルで以下のコマンドを実行し、Linux の Git が Windows の資格情報ヘルパーを参照するように設定します。``` git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager.exe"

## 修正の確認すべてが意図した通りに動作しているか確認するために、以下の手順に従ってください:
- VS Code を完全に閉じます。バックグラウンドプロセスが残っていないことを確認してください。- VS Code を再度開き、アクティビティバーの**アカウント**アイコンをクリックします。- **GitHub でサインイン**を選択し、ブラウザでフローを完了します。- プロフィール写真が表示され、エラーメッセージが表示されなくなれば、接続は成功です。## エラーを未然に防ぐために次の環境でこの問題が発生するのを防ぐために、標準のセットアップスクリプトに `gnome-keyring` と `libsecret` を追加することを検討してください。セキュリティが最優先されるヘッドレスサーバーの場合は、GUI ログインを完全にスキップし、CLI 経由で **パーソナルアクセストークン (PAT)** を使用してください。これにより、シークレットサービスプロバイダーを必要とせずに、ワークフローをスムーズに保つことができます。

Related Error Notes