Sửa lỗi "Writing login information to the keychain failed" của VS Code trên Linux

intermediate💻 VS Code2026-07-11| Linux (Ubuntu, Debian, Arch, Fedora), VS Code 1.80+, extension 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#loi-keychain

Vấn đềBạn đang cố gắng đồng bộ hóa tài khoản GitHub với VS Code trên Linux, nhưng thay vì đăng nhập thành công, một thông báo cứng đầu hiện lên: "Writing login information to the keychain failed." Nếu kiểm tra log, bạn sẽ thấy lỗi cụ thể về org.freedesktop.secrets. Điều này thường xảy ra vì VS Code không tìm thấy nơi an toàn để lưu trữ các token xác thực của bạn.

Tại sao lỗi này xảy raVS Code dựa vào API secret-storage để bảo mật các token GitHub của bạn. Trên Linux, API này tìm kiếm một dịch vụ cấp hệ thống tuân theo đặc tả Freedesktop Secret Service. Thông thường đó là GNOME Keyring hoặc KWallet.

Lỗi xảy ra khi VS Code gửi yêu cầu qua DBus nhưng không nhận được phản hồi. Đây là vấn đề phổ biến đối với các nhà phát triển sử dụng các thiết lập tối giản như i3, Sway hoặc Openbox, nơi daemon keyring không được khởi động mặc định. Nó cũng gây khó khăn cho các máy chủ không giao diện (headless) và môi trường WSL2 thiếu giao diện đồ họa Linux gốc.

Giải pháp 1: Cài đặt và khởi tạo GNOME KeyringCách khắc phục hiệu quả nhất là cài đặt dịch vụ GNOME Keyring. Ngay cả khi bạn không chạy môi trường desktop GNOME, dịch vụ này vẫn cung cấp giao diện org.freedesktop.secrets mà VS Code đang tìm kiếm.

1. Cài đặt các gói cần thiếtMở terminal và cài đặt các thư viện cần thiết dựa trên bản phân phối của bạn:

Ubuntu, Debian, hoặc 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. Tự động khởi động DaemonNếu bạn sử dụng các trình quản lý cửa sổ như i3 hoặc bspwm, keyring sẽ không tự khởi động. Bạn cần kích hoạt nó khi đăng nhập. Thêm đoạn mã này vào tệp .xinitrc hoặc cấu hình khởi động của trình quản lý cửa sổ:

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

Giải pháp 2: Điều chỉnh cài đặt lưu trữ nội bộ của VS CodeĐôi khi bạn không thể—hoặc không muốn—cài đặt keyring trên toàn hệ thống. Trong những trường hợp đó, bạn có thể yêu cầu VS Code xử lý các bí mật (secrets) theo cách khác. Đây là một cách sửa nhanh giúp bỏ qua hoàn toàn yêu cầu DBus.

  • Khởi chạy VS Code.- Mở Cài đặt bằng cách nhấn Ctrl + ,.- Nhập password vào thanh tìm kiếm.- Tìm cài đặt Window: Password Store.- Chuyển menu thả xuống từ gnome-libsecret sang basic.Cảnh báo nhanh: Cài đặt basic sẽ lưu trữ các token của bạn trong một tệp JSON không mã hóa tại ~/.config/Code/User/globalStorage/. Chỉ chọn tùy chọn này nếu ổ đĩa cục bộ của bạn đã được mã hóa (ví dụ: qua LUKS) hoặc nếu bạn đang làm việc trong một môi trường riêng tư, an toàn.

Giải pháp 3: Sửa lỗi bắt tay phiên DBusNếu keyring đã được cài đặt nhưng VS Code vẫn không nhận diện được, có thể biến DBUS_SESSION_BUS_ADDRESS của bạn bị cấu hình sai. Bạn có thể kiểm tra điều này bằng cách khởi chạy VS Code trong một phiên DBus mới.

Chạy lệnh này từ terminal của bạn:

dbus-run-session -- code

Nếu VS Code đăng nhập thành công, vấn đề nằm ở việc quản lý phiên của bạn. Hãy kiểm tra tệp ~/.bashrc hoặc ~/.zshrc để đảm bảo bạn không vô tình ghi đè các biến DBus.

Giải pháp 4: Cách xử lý cho WSL2Người dùng WSL2 thường gặp lỗi này vì hệ thống con Linux cố gắng tìm một keyring Linux không tồn tại. Thay vì vật lộn với keyring phía Linux, hãy kết nối bằng cách sử dụng Windows Git Credential Manager (GCM).

  • Đảm bảo Git for Windows đã được cài đặt trên máy chủ Windows của bạn.- Trong terminal WSL, chạy lệnh sau để trỏ Git của Linux tới trình hỗ trợ thông tin xác thực của Windows:``` git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager.exe"

## Xác minh kết quảĐể đảm bảo mọi thứ hoạt động như mong đợi, hãy làm theo các bước sau:
- Đóng hoàn toàn VS Code—đảm bảo không còn tiến trình chạy ngầm nào.- Mở lại VS Code và nhấp vào biểu tượng **Accounts** trong thanh Activity Bar.- Chọn **Sign in with GitHub** và hoàn tất quy trình trong trình duyệt của bạn.- Nếu ảnh đại diện của bạn xuất hiện và thông báo lỗi không còn nữa, bạn đã kết nối thành công.## Duy trì trạng thái không lỗiĐể ngăn lỗi này xuất hiện trên máy tiếp theo, hãy cân nhắc thêm `gnome-keyring` và `libsecret` vào các script thiết lập tiêu chuẩn của bạn. Đối với các máy chủ headless nơi bảo mật là tối quan trọng, hãy bỏ qua đăng nhập GUI và sử dụng **Personal Access Token (PAT)** qua CLI. Điều này giúp quy trình làm việc của bạn trơn tru mà không cần đến trình cung cấp dịch vụ bảo mật (secret service).

Related Error Notes