![我如何让 kded5 和 Plasma 的网络管理器停止尝试使用 KWallet?](https://linux22.com/image/1027550/%E6%88%91%E5%A6%82%E4%BD%95%E8%AE%A9%20kded5%20%E5%92%8C%20Plasma%20%E7%9A%84%E7%BD%91%E7%BB%9C%E7%AE%A1%E7%90%86%E5%99%A8%E5%81%9C%E6%AD%A2%E5%B0%9D%E8%AF%95%E4%BD%BF%E7%94%A8%20KWallet%EF%BC%9F.png)
我有 Ubuntu 20.04 和 22.04 机器,一直存在显示令人讨厌的对话框的问题
KDE 钱包服务:应用程序“kded5”已请求打开钱包“kdewallet”。请在下面输入此钱包的密码。
每次登录时我都必须将其删除。这是多个论坛中经常问到的问题(例如, 1,2,3,4,5,6,7),但没有明确的答案。这个问题是针对这询问 Ubuntu 问题。
在这个答案对于这个问题,“Freeman”声称的维护者kded5
曾这样说过:
登录时,networkmanager 尝试连接到 wifi,因此需要访问 kwallet。org.kde.plasmanetworkmanagement 是一个 kded 模块,因此请求来自 kded5 进程。
假设这是真的,问题的根源似乎是 Plasma 的网络管理器假设 WiFi 密码将保存在 KWallet 钱包中,因此每次我登录并重新连接到 WiFi 时,kded5
都会抛出此模式,尝试代表 Plasma 网络管理器打开一个不存在的钱包。
在基于 Gnome 的桌面环境中,我从未遇到过这样的问题,因此很自然地会问:“既然这在 Gnome 上不是问题,为什么 Plasma 不能做 Gnome 能做的事情?”在这些桌面环境中,网络管理员将 WiFi 密码存储在 中的文件中/etc/NetworkManager/system-connections/
,这些文件是root
只读的但未加密,因此无需像 Plasma 那样不断纠缠用户解密。事实上,这个目录和与我的 WiFi 相对应的文件已经存在于受此问题影响的两台计算机上,因此网络管理员没有理由不能从他们那里获取密码,而不是要求使用 KWallet。事实上,由于我从未建立过 KWallet 钱包,但我能够连接到 Wifi,我必须假设 Plasma 已经从这些文件中获取了 WiFi 密码,使得 KWallet 弹出对话框变得更加毫无意义。
那么,如何让 Plasma 的网络管理器停止尝试从 KWallet 检索 WiFi 密码?
请注意,启用或禁用 KWallet 既不是问题也不是解决方案。烦人的对话框是由kded5
而不是 KWallet 抛出的,并且kded5
将继续抛出该对话框,因为它被编程为无论 KWallet 是否启用都会查找钱包。事实上,我已禁用 KWallet,但我仍然遇到此问题。
答案1
我知道您对仅仅关闭或禁用 KDE 钱包服务的提示不感兴趣,但是为了其他人的完整性,我将在下面简要地介绍它。
问题的根源可能是某个应用程序正在尝试访问存储的凭据,而 KDE 钱包服务正在通过要求输入密码来解锁钱包来完成其工作。但是,如果您发现此提示令人讨厌或不必要,有几种方法可以防止它:
A1. 禁用 KDE 钱包服务:您可以通过以下方式禁用 KDE 钱包服务:进入 KDE 菜单,输入“wallet”以显示 KWalletManager,进入设置,取消选中“kwallet system active”。您也可以通过编辑kwalletrc
位于~/.kde/share/config/
或中的文件并在 部分下~/.config/
添加行来禁用它。Enabled=false
[Wallet]
A2. 不加密保存 WiFi 密码(不推荐):如果提示是专门用于连接 WiFi,您可以选择不加密保存 WiFi 密码。具体方法是打开 WiFi 连接设置,转到 WiFi 安全选项卡,然后选择“不加密保存密码”选项。
A3. 登录时自动解锁 KDE 钱包:如果您的登录密码和钱包密码匹配且kwallet-pam
已安装,则 KDE 钱包将在登录时自动解锁。这通常是比禁用钱包更好的解决方案,因为它用于存储您的机密[1]。
请注意,虽然这些方法可以阻止出现 KDE Wallet Service 消息,但它们可能会影响您存储的凭据的安全性。禁用 KDE Wallet Service 或存储未加密的密码可能会使您的凭据更容易受到攻击。因此,在实施这些解决方案之前考虑安全影响非常重要。
要解决 KDE Wallet 服务在登录时无法自动解锁的问题,您应该确保 KDE Wallet 密码与您的用户登录密码相同,并且 KDE Wallet 的 PAM 模块 ( kwallet-pam
) 已正确配置。以下是解决此问题的步骤:
B1. 安装kwallet-pam
:确保kwallet-pam
软件包已安装在您的系统上。此软件包为 KDE Wallet 提供必要的 PAM(可插入身份验证模块)集成。
B2. 确保密码匹配:您的用户帐户密码和 KDE 钱包密码必须相同,自动解锁才能正常工作。
B3. 配置 PAM:检查 PAM 配置文件以确保pam_kwallet5.so
正确包含。例如,该/etc/pam.d/sddm
文件应包含以下行:
auth optional pam_kwallet5.so
session optional pam_kwallet5.so auto_start
B4. 钱包名称和加密:钱包应该命名kdewallet
(这是默认名称)并使用标准 blowfish 加密。kwallet-pam
与 GnuPG 密钥不兼容。
B5. 禁用自动关闭:在 KDE 钱包设置中,禁用“当最后一个应用程序停止使用时关闭”选项,以防止钱包在每次使用后关闭。
B6. 删除默认钱包:如果您在更改密码后遇到问题,您可能需要删除默认创建的钱包,从而删除所有存储的条目,然后使用与您的用户帐户相同的密码创建一个新钱包。*
B7. 重新启动:完成这些更改后,重新启动系统以确保更改生效。
如果您使用自动登录或指纹识别器登录,请注意,在这些情况下钱包无法自动解锁。如果每次登录后都遇到钱包提示,则可能需要重命名或删除该~/.kde4/share/apps/kwallet
文件夹。
按照以下步骤,当您登录 KDE 会话时,KDE Wallet 应该会自动解锁。
- 要重置 KDE 钱包服务,您需要删除现有钱包并创建一个新钱包。以下是执行此操作的步骤:
C1. 打开 KDE 钱包管理器:您可以在系统的应用程序菜单中搜索“KWalletManager”或kwalletmanager5
在终端中运行命令来执行此操作。
C2. 删除已有钱包:在KDE Wallet Manager中,右键点击钱包(通常名为“kdewallet”),选择“删除钱包”,在弹出的窗口中确认删除。
C3. 删除钱包文件:如果上述步骤不起作用,您可以手动删除钱包文件。此文件的位置取决于您的 KDE 版本。对于较旧的版本,该文件位于/home/<user name>/.kde/share/apps/kwallet/kdewallet.kwl
。对于较新的版本,它位于/home/<user name>/.local/share/kwalletd/kdewallet.kwl
。
C4. 创建新钱包:删除旧钱包后,您可以创建一个新钱包。在 KDE 钱包管理器中,转到文件 > 新钱包。按照提示为您的钱包设置新密码。
请注意,删除钱包将删除所有存储的条目,包括密码和其他秘密数据。在继续这些步骤之前,请务必备份所有重要数据。