解決登入 Ubuntu 電腦需要重複輸入密碼 3 次的問題

登入 Ubuntu 22.04 電腦,密碼要連續輸入三次才能真正進到桌面。第一次是正常登入,接下來卻跳出「需要認證才能建立色彩管理裝置」的視窗,重複輸入兩次密碼。單純搜尋「Ubuntu 重複輸入密碼」不容易找到有用的解決方法,真正原因在 Linux 的授權管理機制。

Photo by Dave Meier on StockSnap


問題描述

登入 Ubuntu 電腦,下圖是第一次輸入密碼的常見登入畫面


下圖「需要認證才能建立色彩管理裝置」的畫面,則需要輸入第二次與第三次密碼

關機或登出電腦時,同樣需要輸入密碼,但可以在畫面提示有兩位同名使用者登入使用這台電腦。 (以下畫面使用 AI 模擬繪製)


問題解決

步驟1:關閉 Google Chrome 遠端桌面

第一次遇到問題,如果單純輸入關鍵字:「Ubuntu 電腦需要重複輸入密碼」,其實很難從搜尋結果或者透過 AI 找到正確的解決方法。但是提供「登出時出現多個同一個帳號」的線索,很快找到問題。

打開終端機輸入指令,查看開機認證相關紀錄 (PAM session)

journalctl -b | grep -iE "gdm|pam_unix|fprint|auth" | head -50

顯示結果

12:06:46 systemd[901]: pam_unix(chrome-remote-desktop:session): session opened for user XXX

因為這台電腦安裝了 Google Chrome 遠端桌面 (Chrome Remote Desktop):Ubuntu 官方文件1文件2 提到:

Chrome Remote Desktop 遠端連入 Ubuntu Desktop 時,可能會出現「Authentication is required to create a color managed device」、「建立 color profile 的驗證提示」的驗證提示。

Google Chrome 遠端桌面會在同一個 Linux 使用者下建立額外的圖形化工作階段(session)。這時會牽涉到 polkit (PolicyKit) 權限機制:PAM 主要確認「你是不是這個使用者」,而 polkit 則是在使用者已登入後,判斷「你現在能不能執行這個需要較高權限的操作」。如果目前的 session 或授權規則無法直接放行,polkit 就可能要求重新驗證,也就是提示使用者再次輸入密碼。

因為並不需要Google Chrome 遠端桌面,所以到 Google Chrome 瀏覽器「管理擴充功能」關閉 (或者直接移除)。原本需要重複輸入 3 次密碼的問題,變成需要輸入 2 次密碼。

步驟2:允許 polkit 建立色彩描述檔

打開終端機輸入指令,查看開機的 polkit 日誌

journalctl -b | grep -iE "polkit|color-manager|colord"

顯示結果

polkitd: ... authenticated as unix-user:XXX ... for action org.freedesktop.color-manager.create-profile

polkitd: ... authenticated as unix-user:XXX ... for action org.freedesktop.color-manager.create-device

Linux 桌面環境 GNOME 每次登入會替螢幕建立色彩描述檔(colord)。一般狀況不需要輸入密碼。但這台電腦使用 LightDM (支援多桌面環境的 Linux Display Manager),加上 Chrome Remote Desktop 另開了虛擬 session,polkit 判斷 session 需要額外驗證。

處理方式加入 polkit 規則放行色彩管理動作,終端機輸入指令:

sudo tee /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla > /dev/null <<'EOF'

[Allow Colord for all Sessions]

Identity=unix-user:*

Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile

ResultAny=yes

EOF

以上規則只有放寬螢幕色彩描述檔的規則,不影響其他需要密碼的系統操作。下次登入 Ubuntu 只要輸入一次帳號密碼,順利解決重複輸入密碼的問題。

版本資訊

Ubuntu 22.04 (jammy)

注意事項:步驟2 允許 polkit 建立色彩描述檔行為的新增 .pkla 方式,在 Ubuntu(24.04 起)可能不會生效。

參考資料

  1. pam_open_session(3) - Linux manual page https://man7.org/linux/man-pages/man3/pam_open_session.3.html 使用者完成身分驗證後,Linux PAM(Pluggable Authentication Modules)的 session 階段負責在登入前後執行各項環境初始化與後續清理作業,以確保使用者工作階段能正確建立與安全結束。
  2. Launch an Ubuntu desktop on a VM - Ubuntu on GCP documentation https://ubuntu.com/gcp/docs/google-how-to/gce/launch-ubuntu-desktop/
  3. google chrome - Authentication Required Popup - Ask Ubuntu https://askubuntu.com/questions/1318473/authentication-required-popup
  4. polkit: polkit Reference Manual https://polkit.pages.freedesktop.org/polkit/polkit.8.html Linux 系統的授權管理框架,用來判斷「不具特權的程式(subjects)」是否能要求「具特權的程式(mechanisms)」執行某些操作。


留言